--- - name: Download Headscale binary ansible.builtin.get_url: url: "https://github.com/juanfont/headscale/releases/download/v{{ headscale_version }}/headscale_{{ headscale_version }}_linux_amd64" dest: /usr/local/bin/headscale mode: "0755" - name: Create Headscale config directory ansible.builtin.file: path: /etc/headscale state: directory mode: "0755" - name: Create Headscale data directory ansible.builtin.file: path: /var/lib/headscale state: directory mode: "0750" - name: Deploy Headscale systemd unit ansible.builtin.copy: content: | [Unit] Description=Headscale mesh coordinator After=network.target [Service] ExecStart=/usr/local/bin/headscale serve Restart=always RestartSec=5 [Install] WantedBy=multi-user.target dest: /etc/systemd/system/headscale.service mode: "0644" notify: restart headscale - name: Enable and start Headscale ansible.builtin.service: name: headscale enabled: true state: started daemon_reload: true