summaryrefslogtreecommitdiffstats
path: root/roles/network/tasks
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-08-16 02:26:38 +0200
committerAhmed Abdelhalim <[email protected]>2025-08-16 03:14:37 +0200
commit08e7307ea0b311e081560ed6126a6c0d196215e4 (patch)
treeb17ddaaed32dc6d96c8d3a0cc93453d5d1ca10f1 /roles/network/tasks
parent5432aa5e60c851d3a73bd4204d6b2c7adbb538b1 (diff)
Refactor network role to remove NetworkManager/dhcpcd/networkd conflict
Diffstat (limited to 'roles/network/tasks')
-rw-r--r--roles/network/tasks/install-debian.yml28
-rw-r--r--roles/network/tasks/main.yml33
2 files changed, 29 insertions, 32 deletions
diff --git a/roles/network/tasks/install-debian.yml b/roles/network/tasks/install-debian.yml
index 4c09c1c9..6f94ff5c 100644
--- a/roles/network/tasks/install-debian.yml
+++ b/roles/network/tasks/install-debian.yml
@@ -5,34 +5,6 @@
pkg: "{{ network_packages }}"
state: "present"
-- name: "Set network_default_services facts"
- ansible.builtin.set_fact:
- network_default_services:
- - "dhcpcd"
- - "avahi-daemon"
- - "networking"
- - "wpa_supplicant"
- - "resolvconf"
- - "systemd-networkd"
-
-- name: "Stop/Disable conflicting services"
- become: true
- ansible.builtin.systemd_service:
- name: "{{ item }}"
- enabled: false
- state: "stopped"
- with_items: "{{ network_default_services }}"
- when: not ansible_is_chroot
- failed_when: false
- # Not 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
-
- name: "Ensure avahi packages are removed"
become: true
ansible.builtin.apt:
diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml
index 28a4b56d..e6928fd6 100644
--- a/roles/network/tasks/main.yml
+++ b/roles/network/tasks/main.yml
@@ -13,11 +13,38 @@
fail_msg: "network_ipv4_address and network_ipv4_gateway are required together"
when: network_ipv4_address is defined or network_ipv4_gateway is defined
-- name: "(chroot): Ensure network_services are enabled"
+- name: "Ensure network enabled services are enabled"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "{{ item }}"
+ enabled: true
+ state: "started"
+ with_items: "{{ network_enabled_services }}"
+ when: not ansible_is_chroot
+
+- name: "(chroot): Ensure network enabled services are enabled"
ansible.builtin.command:
cmd: "systemctl enable {{ item }}"
changed_when: true
- with_items: "{{ network_services }}"
+ with_items: "{{ network_enabled_services }}"
+ when: ansible_is_chroot
+ # noqa: command-instead-of-module module doesn't work inside chroot
+
+- name: "Ensure network disabled services are disabled"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "{{ item }}"
+ enabled: false
+ state: "stopped"
+ with_items: "{{ network_disabled_services }}"
+ when: not ansible_is_chroot
+ failed_when: false
+
+- name: "(chroot): Ensure network disabled services are disabled"
+ ansible.builtin.command:
+ cmd: "systemctl disable {{ item }}"
+ changed_when: true
+ with_items: "{{ network_disabled_services }}"
when: ansible_is_chroot
# noqa: command-instead-of-module module doesn't work inside chroot
@@ -26,9 +53,7 @@
notify:
- "Reload systemd"
- "Restart NetworkManager"
- - "Restart systemd-networkd"
- "Restart systemd-resolved"
- - "Restart dhcpcd"
block:
- name: "Configure systemd-resolved"
ansible.builtin.template: