Files
ansible/playbooks/alpine/install-zerotier.yml
T

59 lines
1.5 KiB
YAML

---
- name: Install ZeroTier on Alpine hosts using Docker
hosts: alpine
become: true
gather_facts: true
tasks:
- name: Verify Alpine Linux
ansible.builtin.assert:
that:
- ansible_facts["distribution"] == "Alpine"
- ansible_facts["architecture"] == "x86_64"
- name: Ensure persistent ZeroTier directory exists
ansible.builtin.file:
path: /opt/zerotier-one
state: directory
owner: root
group: root
mode: "0700"
- name: Ensure TUN device exists
ansible.builtin.stat:
path: /dev/net/tun
register: zerotier_tun
- name: Fail if TUN device is unavailable
ansible.builtin.fail:
msg: "Enable /dev/net/tun on this host or its Proxmox LXC configuration first."
when: not zerotier_tun.stat.exists
- name: Install Python dependencies for Docker modules
community.general.apk:
name:
- py3-requests
state: present
update_cache: true
- name: Pull ZeroTier container image
community.docker.docker_image:
name: zyclonite/zerotier:1.14.2
source: pull
- name: Run ZeroTier container
community.docker.docker_container:
name: zerotier
image: zyclonite/zerotier:1.14.2
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