summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-08-11 00:32:03 +0200
committerAhmed Abdelhalim <[email protected]>2025-08-11 00:32:03 +0200
commit34b03f4fa7786148f788e312315813dee7799be8 (patch)
treedcfa0b85f898ad5ea8bef94032d6344aa0b02969
parent993775252fa8fcbee0a2864dc51576ced073e83b (diff)
Refactor to simplify debian network role
-rw-r--r--roles/network/handlers/main.yml8
-rw-r--r--roles/network/tasks/install-archlinux.yml8
-rw-r--r--roles/network/tasks/install-debian.yml30
-rw-r--r--roles/network/tasks/main.yml12
-rw-r--r--roles/network/templates/NetworkManager.conf.j24
-rw-r--r--roles/network/vars/debian.yml9
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"