49 lines
1.4 KiB
YAML
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 }}"
|