nl2go.hetzner_vswitch
Ansible 角色:Hetzner vSwitch
Ansible 角色,用于管理 Hetzner Robot vSwitch。
先决条件
需求
名称 | 类型 | 版本 | 位置 |
---|---|---|---|
ansible-filter | Python 包 | 1.0.1 | 控制节点 |
角色变量
可用的变量如下所示,以及默认值(见 defaults/main.yml
):
hetzner_vswitch_webservice_base_url: https://robot-ws.your-server.de
基础 URL 指向 Hetzner Robot API。此变量主要用于测试,不需要更改默认值。
hetzner_vswitch_webservice_username: robot
Webservice 登录名。可以按照 更改访问数据(Hetzner Wiki) 中的说明进行设置/更改。
hetzner_vswitch_webservice_password: secret
Webservice 密码。可以按照 更改访问数据(Hetzner Wiki) 中的说明进行设置/更改。
hetzner_vswitch_instances:
- name: New vSwitch
vlan: 1234
可以使用 hetzner_vswitch_instances
变量管理多个 vSwitch 实例。vSwitch 通过 name
属性进行识别。名称必须唯一,以避免冲突/意外行为。vSwitch 的 state
属性默认为 present
。
hetzner_vswitch_instances:
- name: New vSwitch
interface: vlan1
可以使用 interface
关键字指定基于网络的虚拟接口名称。若物理接口为 eth0
,VLAN ID 为 1234
,默认值为 eth0.1234
,如果未设置。
hetzner_vswitch_instances:
- name: New vSwitch
state: absent
要确保移除 vSwitch,可以添加 state: absent
。name
属性仍然是必填项,用于识别原始状态。
hetzner_vswitch_host:
- name: New vSwitch
每个主机可以通过 hetzner_vswitch_host
变量绑定到一个或多个在 hetzner_vswitch_instances
中定义的 vSwitch。vSwitch 通过 name
属性进行引用。
未定义 hetzner_vswitch_host
变量的主机会被角色忽略。
hetzner_vswitch_host:
- name: New vSwitch
state: absent
添加 state: absent
以将主机从 vSwitch 中分离。
hetzner_vswitch_instances:
- name: New vSwitch
vlan: 4001
ipv4_address: 192.168.100.0
ipv4_netmask: 255.255.255.0
hetzner_vswitch_host:
- name: New vSwitch
ipv4_address: 192.168.100.1
要管理底层网络配置,hetzner_vswitch_instances
中必须包含 ipv4_address
和 ipv4_netmask
。在 hetzner_vswitch_host
变量中,必须指定专用主机 IP 地址作为 ipv4_address
。
hetzner_vswitch_webservice_concurrent_requests: 1
hetzner_vswitch_webservice_concurrent_poll: 1
为了加速处理多个 vSwitch 配置的角色执行,可以通过 hetzner_vswitch_webservice_concurrent_requests
变量控制向 Hetzner Robot API 发出的并行请求数。用于异步请求结果处理的轮询间隔可以使用 hetzner_vswitch_webservice_concurrent_poll
设置。有关更多解释,请查阅官方文档 异步操作和轮询。
标签
可以使用标签限制角色执行特定的任务模块。可用标签如下:
hetzner_vswitch
:覆盖整个角色生命周期。hetzner_vswitch_install
,install
:安装所需的包。hetzner_vswitch_config
,config
:配置相关的包和资源。hetzner_vswitch_vswitch
,config
:使用 Hetzner Robot API 管理 vSwitch 配置。hetzner_vswitch_vswitch_server
,config
:使用 Hetzner Robot API 添加/移除服务器到/从 vSwitch。hetzner_vswitch_host
,config
:在目标主机上配置网络设置。hetzner_vswitch_handle
,handle
:在必要时执行处理程序。
依赖
无。
示例 Playbook
- hosts: all
roles:
- nl2go.hetzner_vswitch
开发
使用 docker-molecule 按照说明运行 Molecule 或在本地安装 Molecule(不推荐,可能会出现版本冲突)。
使用以下命令运行测试:
molecule test --all
维护者
许可证
有关详细信息,请参阅 LICENSE.md 文件。
作者信息
此角色由 Newsletter2Go GmbH 于 2019 年创建。