Update playbooks/alpine/install-zerotier.yml

This commit is contained in:
diablo committed 2026-10-10 00:06:47 +08:00
1 parent ad1bd78561
commit 2305d6118c
1 file changed
+36 -35
+36 -35
View File
@@ -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 }}"