Go-based network automation with YANG models, gRPC, Ansible, Terraform, and Kubernetes integration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
43 lines
1 KiB
YAML
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
|