diff --git a/playbooks/alpine/install-zerotier.yml b/playbooks/alpine/install-zerotier.yml new file mode 100644 index 0000000..113e97f --- /dev/null +++ b/playbooks/alpine/install-zerotier.yml @@ -0,0 +1,51 @@ +--- +- name: Install ZeroTier on Alpine hosts + hosts: alpine + become: true + gather_facts: true + + tasks: + - name: Verify Alpine Linux + ansible.builtin.assert: + that: + - ansible_facts["distribution"] == "Alpine" + fail_msg: "This playbook only supports Alpine Linux." + + - name: Install ZeroTier + community.general.apk: + name: zerotier-one + state: present + update_cache: true + + - name: Enable ZeroTier at boot + ansible.builtin.command: + cmd: rc-update add zerotier-one default + register: zerotier_enable + changed_when: zerotier_enable.rc == 0 + failed_when: + - zerotier_enable.rc != 0 + - "'already' not in (zerotier_enable.stderr | lower)" + + - name: Start ZeroTier + ansible.builtin.command: + cmd: rc-service zerotier-one start + register: zerotier_start + changed_when: zerotier_start.rc == 0 + failed_when: zerotier_start.rc != 0 + + - name: Verify ZeroTier package + ansible.builtin.command: + cmd: apk info -e zerotier-one + register: zerotier_package + changed_when: false + failed_when: zerotier_package.rc != 0 + + - name: Check ZeroTier node status + ansible.builtin.command: + cmd: zerotier-cli info + register: zerotier_info + changed_when: false + + - name: Display ZeroTier status + ansible.builtin.debug: + msg: "{{ inventory_hostname }}: {{ zerotier_info.stdout }}"