kedge/ansible/roles/headscale/tasks/main.yml
Tyler King 6058e62348 Initial commit: Kedge network automation platform
Go-based network automation with YANG models, gRPC, Ansible,
Terraform, and Kubernetes integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:09:30 -05:00

43 lines
1 KiB
YAML

---
- 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