m4rcu5nl.zerotier-one
ZeroTier
这个 Ansible 角色添加了 ZeroTier 存储库,并使用系统的包管理器安装 zerotier-one
软件包。根据提供的变量,此角色还可以向(现有的)ZeroTier 网络添加和授权新成员,并指示新成员加入网络。
要求
从技术上讲,此角色没有任何要求。如果在没有设置任何变量的情况下运行,它将仅执行安装任务。以下变量会影响角色的行为:
zerotier_network_id:设置后,主机将被告知加入此网络。
zerotier_api_accesstoken:设置后,角色可以使用 ZeroTier API 处理成员认证和配置。
角色变量
zerotier_network_id
类型:字符串
默认值:
描述:新成员应加入的网络的 16 位字符网络 ID。省略时,节点将不会加入任何网络。
zerotier_member_register_short_hostname
类型:布尔值
默认值:false
描述:默认情况下,将使用 inventory_hostname
为网络中的成员命名。如果设置为 true
,则将使用 inventory_hostname_short
。
zerotier_member_ip_assignments
类型:列表
默认值:[]
描述:要分配给此成员的 IP 地址列表。如果省略,成员将自动在网络上分配一个地址。
zerotier_member_description
类型:字符串
默认值:""
描述:成员的可选描述。
zerotier_api_accesstoken
类型:字符串
默认值:""
描述:与 ZeroTier API 进行授权所需的访问令牌。您可以在 https://my.zerotier.com/ 的帐户设置中生成一个。如果省略,则新加入的成员将不会被自动授权。
zerotier_api_url
类型:字符串
默认值:https://my.zerotier.com
描述:ZeroTier API 的地址。必须使用 HTTPS 协议。
zerotier_api_delegate
类型:字符串
默认值:localhost
描述:用于委托 ZeroTier API 调用的任务。这在只能从白名单管理服务器进行 API 调用的情况下非常有用。
示例剧本
- hosts: servers
vars:
zerotier_network_id: 1234567890qwerty
zerotier_api_accesstoken: "{{ vault_zerotier_accesstoken }}"
zerotier_register_short_hostname: true
roles:
- { role: m4rcu5nl.zerotier, become: true }
示例清单
[servers]
web1.example.com zerotier_member_ip_assignments='["192.168.195.1", "192.168.195.2"]'
web2.example.com zerotier_member_ip_assignments='["192.168.195.3", "192.168.195.4"]'
db1.example.com zerotier_member_ip_assignments='["192.168.195.10"]'
db2.example.com zerotier_member_ip_assignments='["192.168.195.11"]'
db3.example.com zerotier_member_ip_assignments='["192.168.195.12"]'
[webservers]
web1.example.com
web2.example.com
[dbservers]
db1.example.com
db2.example.com
db3.example.com
[webservers:vars]
zerotier_member_description='<AppName> webserver'
[dbservers:vars]
zerotier_member_description='<AppName> db cluster node'