infra/ansible/roles/tailscale/tasks/main.yml

49 lines
1.4 KiB
YAML

---
- name: Download Tailscale GPG key
ansible.builtin.get_url:
url: https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg
dest: /usr/share/keyrings/tailscale-archive-keyring.gpg
mode: '0644'
force: true
- name: Add Tailscale repository
ansible.builtin.deb822_repository:
name: tailscale
types: deb
uris: https://pkgs.tailscale.com/stable/debian
suites: bookworm
components: main
signed_by: /usr/share/keyrings/tailscale-archive-keyring.gpg
state: present
enabled: true
- name: Install Tailscale
ansible.builtin.apt:
name: tailscale
state: present
update_cache: yes
- name: Check if Tailscale is already connected
ansible.builtin.command: tailscale status --json
register: tailscale_status
changed_when: false
failed_when: false
- name: Connect to Tailscale
ansible.builtin.command: "tailscale up --authkey={{ tailscale_authkey }} {{ tailscale_args | default('') }}"
when: tailscale_status.rc != 0 or 'BackendState":"Running"' not in tailscale_status.stdout
register: tailscale_up
changed_when: tailscale_up.rc == 0
- name: Get Tailscale IP address
ansible.builtin.command: tailscale ip -4
register: tailscale_ip_result
changed_when: false
- name: Set Tailscale IP fact
ansible.builtin.set_fact:
tailscale_ip: "{{ tailscale_ip_result.stdout | trim }}"
- name: Display Tailscale IP
ansible.builtin.debug:
msg: "Tailscale IP: {{ tailscale_ip }}"