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: absentname 属性仍然是必填项,用于识别原始状态。

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_addressipv4_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 年创建。

关于项目

Manage Hetzner Robot vSwitch (https://wiki.hetzner.de/index.php/Vswitch/en) using Ansible.

安装
ansible-galaxy install nl2go.hetzner_vswitch
许可证
Unknown
下载
11.2k