Update playbooks/alpine/install-zerotier.yml
This commit is contained in:
1 parent
ad1bd78561
commit
2305d6118c
1 file changed
+36
-35
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
- name: Install ZeroTier on Alpine hosts
|
- name: Install ZeroTier on Alpine hosts using Docker
|
||||||
hosts: alpine
|
hosts: alpine
|
||||||
become: true
|
become: true
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
@@ -9,43 +10,43 @@
|
|||||||
ansible.builtin.assert:
|
ansible.builtin.assert:
|
||||||
that:
|
that:
|
||||||
- ansible_facts["distribution"] == "Alpine"
|
- ansible_facts["distribution"] == "Alpine"
|
||||||
fail_msg: "This playbook only supports Alpine Linux."
|
- ansible_facts["architecture"] == "x86_64"
|
||||||
|
|
||||||
- name: Install ZeroTier
|
- name: Ensure persistent ZeroTier directory exists
|
||||||
community.general.apk:
|
ansible.builtin.file:
|
||||||
name: zerotier-one
|
path: /opt/zerotier-one
|
||||||
state: present
|
state: directory
|
||||||
update_cache: true
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0700"
|
||||||
|
|
||||||
- name: Enable ZeroTier at boot
|
- name: Ensure TUN device exists
|
||||||
ansible.builtin.command:
|
ansible.builtin.stat:
|
||||||
cmd: rc-update add zerotier-one default
|
path: /dev/net/tun
|
||||||
register: zerotier_enable
|
register: zerotier_tun
|
||||||
changed_when: zerotier_enable.rc == 0
|
|
||||||
failed_when:
|
|
||||||
- zerotier_enable.rc != 0
|
|
||||||
- "'already' not in (zerotier_enable.stderr | lower)"
|
|
||||||
|
|
||||||
- name: Start ZeroTier
|
- name: Fail if TUN device is unavailable
|
||||||
ansible.builtin.command:
|
ansible.builtin.fail:
|
||||||
cmd: rc-service zerotier-one start
|
msg: "Enable /dev/net/tun on this host or its Proxmox LXC configuration first."
|
||||||
register: zerotier_start
|
when: not zerotier_tun.stat.exists
|
||||||
changed_when: zerotier_start.rc == 0
|
|
||||||
failed_when: zerotier_start.rc != 0
|
|
||||||
|
|
||||||
- name: Verify ZeroTier package
|
- name: Pull ZeroTier container image
|
||||||
ansible.builtin.command:
|
community.docker.docker_image:
|
||||||
cmd: apk info -e zerotier-one
|
name: zyclonite/zerotier:1.14.2
|
||||||
register: zerotier_package
|
source: pull
|
||||||
changed_when: false
|
|
||||||
failed_when: zerotier_package.rc != 0
|
|
||||||
|
|
||||||
- name: Check ZeroTier node status
|
- name: Run ZeroTier container
|
||||||
ansible.builtin.command:
|
community.docker.docker_container:
|
||||||
cmd: zerotier-cli info
|
name: zerotier
|
||||||
register: zerotier_info
|
image: zyclonite/zerotier:1.14.2
|
||||||
changed_when: false
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
capabilities:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_ADMIN
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
volumes:
|
||||||
|
- /opt/zerotier-one:/var/lib/zerotier-one
|
||||||
|
|
||||||
- name: Display ZeroTier status
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "{{ inventory_hostname }}: {{ zerotier_info.stdout }}"
|
|
||||||
Reference in new issue
Block a user