From b0324cf3fe3a4c962179db50f57758f27a35c31b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20D=C3=A9siles?= <1536672+cdesiles@users.noreply.github.com> Date: Sat, 30 May 2026 21:57:20 +0200 Subject: [PATCH] refactor: hoist OS-specific package names to role defaults - nfs_server: nfs_package_name (nfs-utils / nfs-kernel-server) - wireguard: wireguard_package_name (wireguard-tools / wireguard) - tooling: tooling_dig_package, tooling_netcat_package Also fix tooling role structure: move tooling.yml to tasks/main.yml so the role is actually invokable via 'role: tooling' (defaults/main.yml is auto-loaded), and collapse the 10 individual package tasks into a single list-based install. --- roles/nfs_server/defaults/main.yml | 4 ++ roles/nfs_server/tasks/main.yml | 2 +- roles/tooling/defaults/main.yml | 6 +++ roles/tooling/tasks/main.yml | 15 ++++++++ roles/tooling/tooling.yml | 60 ------------------------------ roles/wireguard/defaults/main.yml | 4 ++ roles/wireguard/tasks/main.yml | 2 +- 7 files changed, 31 insertions(+), 62 deletions(-) create mode 100644 roles/tooling/defaults/main.yml create mode 100644 roles/tooling/tasks/main.yml delete mode 100644 roles/tooling/tooling.yml diff --git a/roles/nfs_server/defaults/main.yml b/roles/nfs_server/defaults/main.yml index 528d2d6..c1f97fc 100644 --- a/roles/nfs_server/defaults/main.yml +++ b/roles/nfs_server/defaults/main.yml @@ -16,3 +16,7 @@ nfs_port: 2049 nfs_server_firewall_allowed_sources: - 127.0.0.0/8 + +# OS-dependent package name +nfs_package_name: >- + {{ (ansible_facts['os_family'] == 'Archlinux') | ternary('nfs-utils', 'nfs-kernel-server') }} diff --git a/roles/nfs_server/tasks/main.yml b/roles/nfs_server/tasks/main.yml index 87e5fca..73477a8 100644 --- a/roles/nfs_server/tasks/main.yml +++ b/roles/nfs_server/tasks/main.yml @@ -1,7 +1,7 @@ --- - name: Install nfs-server ansible.builtin.package: - name: "{{ (ansible_facts['os_family'] == 'Archlinux') | ternary('nfs-utils', 'nfs-kernel-server') }}" + name: "{{ nfs_package_name }}" state: present - name: Configure nfs configuration diff --git a/roles/tooling/defaults/main.yml b/roles/tooling/defaults/main.yml new file mode 100644 index 0000000..82318b6 --- /dev/null +++ b/roles/tooling/defaults/main.yml @@ -0,0 +1,6 @@ +--- +# OS-dependent package names +tooling_dig_package: >- + {{ (ansible_facts['os_family'] == 'Archlinux') | ternary('bind', 'dnsutils') }} +tooling_netcat_package: >- + {{ (ansible_facts['os_family'] == 'Archlinux') | ternary('openbsd-netcat', 'netcat-openbsd') }} diff --git a/roles/tooling/tasks/main.yml b/roles/tooling/tasks/main.yml new file mode 100644 index 0000000..5f20e7d --- /dev/null +++ b/roles/tooling/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: Install command-line tooling + ansible.builtin.package: + name: + - usbutils + - htop + - bottom + - wget + - ethtool + - iperf3 + - vim + - nano + - "{{ tooling_dig_package }}" + - "{{ tooling_netcat_package }}" + state: present diff --git a/roles/tooling/tooling.yml b/roles/tooling/tooling.yml deleted file mode 100644 index 0403312..0000000 --- a/roles/tooling/tooling.yml +++ /dev/null @@ -1,60 +0,0 @@ ---- -- name: Install usbutils - package: - name: usbutils - state: present - changed_when: false - -- name: Install htop - package: - name: htop - state: present - changed_when: false - -- name: Install bottom - package: - name: bottom - state: present - changed_when: false - -- name: Install wget - package: - name: wget - state: present - changed_when: false - -- name: Install dig utility - package: - name: "{{ (ansible_facts['os_family'] == 'Archlinux') | ternary('bind', 'dnsutils') }}" - state: present - changed_when: false - -- name: Install ethtool - package: - name: ethtool - state: present - changed_when: false - -- name: Install iperf3 - package: - name: iperf3 - state: present - changed_when: false - -- name: Install vim - package: - name: vim - state: present - changed_when: false - -- name: Install nano - package: - name: nano - state: present - changed_when: false - -- name: Install netcat - package: - name: "{{ (ansible_facts['os_family'] == 'Archlinux') | ternary('openbsd-netcat', 'netcat-openbsd') }}" - state: present - changed_when: false diff --git a/roles/wireguard/defaults/main.yml b/roles/wireguard/defaults/main.yml index fc70ed0..7ce494b 100644 --- a/roles/wireguard/defaults/main.yml +++ b/roles/wireguard/defaults/main.yml @@ -15,3 +15,7 @@ wireguard_config_base_path: /etc/wireguard # endpoint: host:port # optional: peer's public endpoint # persistent_keepalive: 25 # optional: keepalive interval (seconds) wireguard_tunnels: [] + +# OS-dependent package name +wireguard_package_name: >- + {{ (ansible_facts['os_family'] == 'Archlinux') | ternary('wireguard-tools', 'wireguard') }} diff --git a/roles/wireguard/tasks/main.yml b/roles/wireguard/tasks/main.yml index 0bf2003..f58a39f 100644 --- a/roles/wireguard/tasks/main.yml +++ b/roles/wireguard/tasks/main.yml @@ -11,7 +11,7 @@ - name: Install wireguard ansible.builtin.package: - name: "{{ (ansible_facts['os_family'] == 'Archlinux') | ternary('wireguard-tools', 'wireguard') }}" + name: "{{ wireguard_package_name }}" state: present # Use systemd-resolved for DNS management (modern approach on all distributions)