diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:03 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:03 +0200 |
| commit | 34b03f4fa7786148f788e312315813dee7799be8 (patch) | |
| tree | dcfa0b85f898ad5ea8bef94032d6344aa0b02969 /roles/network | |
| parent | 993775252fa8fcbee0a2864dc51576ced073e83b (diff) | |
Refactor to simplify debian network role
Diffstat (limited to 'roles/network')
| -rw-r--r-- | roles/network/handlers/main.yml | 8 | ||||
| -rw-r--r-- | roles/network/tasks/install-archlinux.yml | 8 | ||||
| -rw-r--r-- | roles/network/tasks/install-debian.yml | 30 | ||||
| -rw-r--r-- | roles/network/tasks/main.yml | 12 | ||||
| -rw-r--r-- | roles/network/templates/NetworkManager.conf.j2 | 4 | ||||
| -rw-r--r-- | roles/network/vars/debian.yml | 9 |
6 files changed, 36 insertions, 35 deletions
diff --git a/roles/network/handlers/main.yml b/roles/network/handlers/main.yml index df50d41d..84dfff52 100644 --- a/roles/network/handlers/main.yml +++ b/roles/network/handlers/main.yml @@ -5,9 +5,11 @@ daemon_reload: true when: not ansible_is_chroot -- name: "Restart NetworkManager" +- name: "Restart network services" become: true ansible.builtin.systemd_service: - name: "NetworkManager" - state: "restarted" + name: "{{ item }}" + enabled: true + state: "started" + with_items: "{{ network_services }}" when: not ansible_is_chroot diff --git a/roles/network/tasks/install-archlinux.yml b/roles/network/tasks/install-archlinux.yml index be4cc5e7..788febea 100644 --- a/roles/network/tasks/install-archlinux.yml +++ b/roles/network/tasks/install-archlinux.yml @@ -6,11 +6,3 @@ state: "present" update_cache: true tags: [required_for_boot] - -- name: "Ensrue network_packages_removed are removed" - become: true - community.general.pacman: - name: "{{ network_packages_removed }}" - state: "absent" - extra_args: "-n" # Removes config files too - # Not required for boot diff --git a/roles/network/tasks/install-debian.yml b/roles/network/tasks/install-debian.yml index f09a240c..7263bc84 100644 --- a/roles/network/tasks/install-debian.yml +++ b/roles/network/tasks/install-debian.yml @@ -7,10 +7,28 @@ update_cache: true tags: [required_for_boot] -- name: "Ensrue network_packages_removed are removed" +- name: "Set network_default_services facts" + ansible.builtin.set_fact: + network_default_services: + - "dhcpcd" + - "networking" + - "wpa_supplicant" + tags: [required_for_boot] + +- name: "Disable conflicting services" become: true - ansible.builtin.apt: - name: "{{ network_packages_removed }}" - state: "absent" - purge: true - # Not required for boot + ansible.builtin.systemd_service: + name: "{{ item }}" + enabled: false + state: "stopped" + with_items: "{{ network_default_services }}" + when: not ansible_is_chroot + tags: [required_for_boot] + +- name: "(chroot): Disable conflicting services" + ansible.builtin.command: + cmd: "systemctl disable {{ network_default_services | join(' ') }}" + changed_when: true + when: ansible_is_chroot + # noqa: command-instead-of-module module doesn't work inside chroot + tags: [required_for_boot] diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml index 44a9e300..e8bca0be 100644 --- a/roles/network/tasks/main.yml +++ b/roles/network/tasks/main.yml @@ -40,21 +40,11 @@ # noqa: command-instead-of-module module doesn't work inside chroot tags: [required_for_boot] -- name: "Ensure network_services are enabled" - become: true - ansible.builtin.systemd_service: - name: "{{ item }}" - enabled: true - state: "started" - with_items: "{{ network_services }}" - when: not ansible_is_chroot - # Not required for boot - - name: "Configure NetworkManager" become: true tags: [required_for_boot] notify: - - "Restart NetworkManager" + - "Restart network services" - "Reload systemd" block: - name: "Configure NetworkManager" diff --git a/roles/network/templates/NetworkManager.conf.j2 b/roles/network/templates/NetworkManager.conf.j2 index 32d8a442..2fb39f4d 100644 --- a/roles/network/templates/NetworkManager.conf.j2 +++ b/roles/network/templates/NetworkManager.conf.j2 @@ -3,6 +3,7 @@ uri=https://ping.archlinux.org [main] dhcp=dhcpcd +plugins=ifupdown,keyfile [device-mac-randomization] wifi.scan-rand-mac-address=yes @@ -20,3 +21,6 @@ wifi.powersave=2 [logging] level=INFO + +[ifupdown] +managed=true diff --git a/roles/network/vars/debian.yml b/roles/network/vars/debian.yml index 5a9e8797..406fef9e 100644 --- a/roles/network/vars/debian.yml +++ b/roles/network/vars/debian.yml @@ -1,13 +1,8 @@ --- network_packages: - - "dhcpcd" - - "network-manager" - - "systemd-resolved" - -network_packages_removed: - "avahi-daemon" + - "network-manager" network_services: - - "dhcpcd" - - "systemd-resolved" + - "avahi-daemon" - "NetworkManager" |
