#!/usr/bin/env ansible-playbook # vim:ft=ansible: --- - name: check for zerotier stat: path=/usr/bin/zerotier-cli register: zerotier_cli_path - name: install zerotier if we're joining networks block: - name: configure zerotier for apt block: - name: ensure zerotier repo key ansible.builtin.apt_key: url="{{ zerotier_repo_deb_key }}" - name: ensure zerotier repo ansible.builtin.apt_repository: repo="{{ zerotier_repo_deb }}" - name: update apt cache ansible.builtin.apt: update_cache=yes cache_valid_time=86400 - name: ensure packages ansible.builtin.apt: name=zerotier-one when: ansible_pkg_mgr == "apt" - name: template unit file ansible.builtin.template: src=zerotier-one.service dest=/etc/systemd/system/zerotier-one.service mode=0644 notify: restart zerotier - name: join networks ansible.builtin.command: argv: [ zerotier-cli, join, "{{ item }}" ] with_items: "{{ zerotier_networks_join }}" changed_when: no when: zerotier_networks_join is defined and zerotier_networks_join - name: leave networks ansible.builtin.command: argv: [ zerotier-cli, leave, "{{ item }}" ] register: zerotierleave with_items: "{{ zerotier_networks_leave }}" when: zerotier_cli_path.stat.exists and zerotier_networks_leave is defined changed_when: no failed_when: "'0 leave connection failed' in zerotierleave.stdout"