38 lines
1.5 KiB
YAML
38 lines
1.5 KiB
YAML
- name: Read the netbird status
|
|
when: "netbird_client.join_network.setup_key | default('') | length > 0"
|
|
command: netbird status -d
|
|
register: netbird_status
|
|
changed_when: false
|
|
failed_when: false
|
|
check_mode: false
|
|
|
|
# Joined means connected to the management server of the vars; without a management_url any server counts.
|
|
- name: Join netbird-network
|
|
when:
|
|
- "netbird_client.join_network.setup_key | default('') | length > 0"
|
|
- netbird_status.stdout is not search(netbird_joined_pattern, multiline=True)
|
|
vars:
|
|
netbird_management_url: "{{ netbird_client.join_network.management_url | default('') }}"
|
|
netbird_joined_pattern: "^Management: Connected{{ (' to ' ~ (netbird_management_url | regex_escape) ~ '$') if netbird_management_url != '' else '' }}"
|
|
netbird_blacklist_extra: "{{ netbird_client.iface_blacklist_extra | default([]) }}"
|
|
netbird_up_argv: >-
|
|
{{ ['netbird', 'up']
|
|
+ (['--management-url', netbird_management_url] if netbird_management_url != '' else [])
|
|
+ ['--setup-key', netbird_client.join_network.setup_key]
|
|
+ (['--extra-iface-blacklist', netbird_blacklist_extra | join(',')] if netbird_blacklist_extra | length > 0 else []) }}
|
|
command:
|
|
argv: "{{ netbird_up_argv }}"
|
|
no_log: true
|
|
changed_when: true
|
|
register: join
|
|
|
|
- name: Wait for netbird-interface to exist
|
|
wait_for:
|
|
path: "/sys/class/net/wt0"
|
|
state: present
|
|
when: join is changed
|
|
|
|
- name: Gather facts to get changes
|
|
ansible.builtin.gather_facts:
|
|
when: join is changed
|