Skip to content

Commit 445d3da

Browse files
author
Derek
committed
fix: Add NetBird CLI to core developer role
Install NetBird CLI for remote console access via package managers: - Fedora: YUM repository (pkgs.netbird.io/yum) - Ubuntu: APT repository (pkgs.netbird.io/debian) - macOS: Homebrew tap (netbirdio/tap/netbird) CLI only - not VPN/UI components.
1 parent c070354 commit 445d3da

3 files changed

Lines changed: 104 additions & 0 deletions

File tree

ansible/roles/dfe_developer_core/tasks/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@
5454
file: openvpn.yml
5555
tags: ['openvpn', 'vpn']
5656

57+
- name: Install NetBird CLI
58+
ansible.builtin.include_tasks:
59+
file: netbird.yml
60+
tags: ['netbird', 'remote']
61+
5762
- name: Install Claude Code CLI
5863
ansible.builtin.include_tasks:
5964
file: claude.yml
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
# NetBird CLI installation (for remote console access)
3+
# CLI only - not the VPN/UI components
4+
5+
# ============================================================================
6+
# FEDORA - Add YUM repository and install
7+
# ============================================================================
8+
9+
- name: Install NetBird CLI (Fedora)
10+
block:
11+
- name: Add NetBird repository
12+
ansible.builtin.yum_repository:
13+
name: netbird
14+
description: NetBird
15+
baseurl: https://pkgs.netbird.io/yum/
16+
enabled: true
17+
gpgcheck: false
18+
gpgkey: https://pkgs.netbird.io/yum/repodata/repomd.xml.key
19+
repo_gpgcheck: true
20+
21+
- name: Install NetBird CLI
22+
ansible.builtin.dnf:
23+
name: netbird
24+
state: present
25+
26+
when: ansible_distribution == 'Fedora'
27+
28+
# ============================================================================
29+
# UBUNTU - Add APT repository and install
30+
# ============================================================================
31+
32+
- name: Install NetBird CLI (Ubuntu)
33+
block:
34+
- name: Download NetBird GPG key
35+
ansible.builtin.get_url:
36+
url: https://pkgs.netbird.io/debian/public.key
37+
dest: /tmp/netbird.key
38+
mode: '0644'
39+
40+
- name: Convert NetBird GPG key to keyring format
41+
ansible.builtin.shell: |
42+
gpg --dearmor < /tmp/netbird.key > /usr/share/keyrings/netbird-archive-keyring.gpg
43+
args:
44+
creates: /usr/share/keyrings/netbird-archive-keyring.gpg
45+
46+
- name: Remove temporary key file
47+
ansible.builtin.file:
48+
path: /tmp/netbird.key
49+
state: absent
50+
51+
- name: Add NetBird repository
52+
ansible.builtin.apt_repository:
53+
repo: "deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main"
54+
filename: netbird
55+
state: present
56+
57+
- name: Install NetBird CLI
58+
ansible.builtin.apt:
59+
name: netbird
60+
state: present
61+
update_cache: true
62+
63+
when: ansible_distribution == 'Ubuntu'
64+
65+
# ============================================================================
66+
# macOS - Install via Homebrew
67+
# ============================================================================
68+
69+
- name: Install NetBird CLI (macOS)
70+
block:
71+
- name: Tap NetBird Homebrew repository
72+
community.general.homebrew_tap:
73+
name: netbirdio/tap
74+
state: present
75+
76+
- name: Install NetBird CLI
77+
community.general.homebrew:
78+
name: netbirdio/tap/netbird
79+
state: present
80+
81+
become: false
82+
environment: "{{ homebrew_env }}"
83+
when: ansible_distribution == 'MacOSX'

ansible/roles/dfe_developer_core/tasks/verify.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,21 @@
8383
failed_when: verify_openvpn.rc != 0
8484
when: ansible_distribution == 'MacOSX'
8585

86+
- name: Verify NetBird CLI (Linux)
87+
ansible.builtin.command: netbird version
88+
register: verify_netbird
89+
changed_when: false
90+
failed_when: verify_netbird.rc != 0
91+
when: ansible_distribution in ['Fedora', 'Ubuntu']
92+
93+
- name: Verify NetBird CLI (macOS)
94+
ansible.builtin.command: netbird version
95+
environment: "{{ homebrew_env }}"
96+
register: verify_netbird
97+
changed_when: false
98+
failed_when: verify_netbird.rc != 0
99+
when: ansible_distribution == 'MacOSX'
100+
86101
- name: Verify Claude Code CLI
87102
ansible.builtin.command: "{{ dfe_user_home }}/.npm-global/bin/claude --version"
88103
register: verify_claude
@@ -130,6 +145,7 @@
130145
- semantic-release: {{ verify_semrel.stdout | default('installed') }}
131146
- Linear CLI: {{ verify_linear.stdout | default('installed') }}
132147
- OpenVPN: {{ verify_openvpn.stdout | default('installed') }}
148+
- NetBird CLI: {{ verify_netbird.stdout | default('installed') }}
133149
- Claude Code CLI: {{ verify_claude.stdout | default('installed') }}
134150
- Gitleaks: {{ verify_gitleaks.stdout | default('installed') }}
135151
- act: {{ verify_act.stdout | default('installed') }}

0 commit comments

Comments
 (0)