diff --git a/playbooks/debian/install-zerotier.yml b/playbooks/debian/install-zerotier.yml index 7fdabb0..7832829 100644 --- a/playbooks/debian/install-zerotier.yml +++ b/playbooks/debian/install-zerotier.yml @@ -1,5 +1,6 @@ + --- -- name: Install ZeroTier on Debian hosts +- name: Install and configure ZeroTier on Debian hosts hosts: debian become: true gather_facts: true @@ -8,14 +9,13 @@ - name: Verify Debian ansible.builtin.assert: that: - - ansible_distribution == "Debian" + - ansible_facts["distribution"] == "Debian" - name: Install prerequisites ansible.builtin.apt: name: - ca-certificates - curl - - gpg state: present update_cache: true @@ -25,22 +25,32 @@ dest: /tmp/zerotier-install.sh mode: "0755" - - name: Install ZeroTier - ansible.builtin.command: - cmd: bash /tmp/zerotier-install.sh - args: - creates: /usr/sbin/zerotier-one - - - name: Verify ZeroTier package is installed + - name: Check whether ZeroTier package is installed ansible.builtin.command: cmd: dpkg-query -W -f='${Status}' zerotier-one register: zerotier_package changed_when: false - failed_when: "'install ok installed' not in zerotier_package.stdout" + failed_when: false + + - name: Run official installer when package is missing + ansible.builtin.command: + cmd: bash /tmp/zerotier-install.sh + when: "'install ok installed' not in zerotier_package.stdout" + + - name: Verify ZeroTier package + ansible.builtin.command: + cmd: dpkg-query -W -f='${Status}' zerotier-one + register: zerotier_verify + changed_when: false + failed_when: "'install ok installed' not in zerotier_verify.stdout" + + - name: Reload systemd + ansible.builtin.systemd: + daemon_reload: true - name: Enable and start ZeroTier ansible.builtin.systemd: - name: zerotier-one.service + name: zerotier-one enabled: true state: started @@ -52,5 +62,4 @@ - name: Display ZeroTier status ansible.builtin.debug: - msg: "{{ inventory_hostname }}: {{ zerotier_status.stdout }}" - + msg: "{{ inventory_hostname }}: {{ zerotier_status.stdout }}" \ No newline at end of file