ajaykumar4.zerotier
Ansible 角色:ZeroTier
这个 Ansible 角色添加了 ZeroTier 仓库,并使用系统的包管理器安装 zerotier
包。根据提供的变量,此角色还可以将新成员添加并授权到(现有的)ZeroTier 网络,并指导新成员加入网络。
如果需要一个更灵活和通用的 ZeroTier 角色,可以查看 ajaykumar4.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 调用的情况下非常有用。
使用
首先根据 inventory
目录内的 sample
目录创建一个新目录:
cp -R inventory/sample inventory/my-cluster
第二,编辑 inventory/my-cluster/hosts.ini
,使其与上面收集的系统信息匹配。
示例清单
[servers]
pi-master
pi-worker01
jetson-worker01
[master]
pi-master
[nodes]
pi-worker01
jetson-worker01
[master:vars]
zerotier_member_description='Kubernetes Pi Master Node'
[nodes:vars]
zerotier_member_description='Kubernetes Pi Workers Node'
[servers]
pi-master hostname=pi-master ansible_host=192.168.0.82 ansible_user=pi ansible_sudo_pass=password zerotier_member_description="Kubernetes Pi Master Node"
pi-worker01 ansible_port=22 hostname=pi-worker01 ansible_host=192.168.0.176 ansible_user=pi ansible_sudo_pass=password zerotier_member_description="Kubernetes Pi Worker01 Node"
jetson-worker01 ansible_port=22 hostname=jetson-worker01 ansible_host=192.168.0.227 ansible_user=jetson ansible_sudo_pass=password zerotier_member_description="Kubernetes Jetson Worker01 Node"
第三,编辑 inventory/my-cluster/site.yml
,使其与上面收集的 ZeroTier 信息匹配。
示例剧本
- hosts: servers
vars:
zerotier_network_id: < network id >
zerotier_api_accesstoken: < accesstoken >
zerotier_register_short_hostname: true
roles:
- ajaykumar4.zerotier
使用以下命令开始集群的配置:
ansible-playbook inventory/my-cluster/playbook.yml -i inventory/my-cluster/hosts.ini