diff --git a/client/handlers/main.yml b/client/handlers/main.yml index 021071dcacc56accaf4ec141c24ffb7d5ac33735..68bca17bb37bcd546ecc12ba4f9921ae4e746fdf 100644 --- a/client/handlers/main.yml +++ b/client/handlers/main.yml @@ -6,3 +6,10 @@ - name: restart sddm service: name=sddm state=restarted + +- name: reload systemd service files + systemd: daemon_reload=yes + +- name: restart networkd + service: name=systemd-networkd state=restarted + diff --git a/client/tasks/network.yml b/client/tasks/network.yml new file mode 100644 index 0000000000000000000000000000000000000000..55ba1f9695f182b8fc2bc98284bf54a880917338 --- /dev/null +++ b/client/tasks/network.yml @@ -0,0 +1,53 @@ +--- + +- name: ensure networkd has a valid configuration + template: + src: 20-wired.network.j2 + dest: /etc/systemd/network/20-wired.network + owner: root + group: root + mode: 0644 + notify: + - reload systemd service files + - restart networkd + +- meta: flush_handlers + +- name: ensure networkd is enabled and running + service: + name: systemd-networkd + state: started + enabled: yes + +- name: ensure legacy methods are disabled + service: + name: "{{ item }}" + state: stopped + enabled: no + with_items: + - "ifup@" + - "networking" + +- name: ensure we wait for network to be online + service: + name: systemd-networkd-wait-online + enabled: yes + +- name: ensure ansible's copy module does not bullshit us + file: + path: /etc/systemd/system/sddm.service.d + state: directory + owner: root + group: root + mode: 0644 + +- name: ensure sddm waits for network to be online + copy: + src: sddm-override.conf + dest: /etc/systemd/system/sddm.service.d/network.conf + owner: root + group: root + mode: 0644 + notify: + - reload systemd service files + diff --git a/client/templates/20-wired.network.j2 b/client/templates/20-wired.network.j2 new file mode 100644 index 0000000000000000000000000000000000000000..020f88170fac52615c749786f8683c6f2a61fdb2 --- /dev/null +++ b/client/templates/20-wired.network.j2 @@ -0,0 +1,5 @@ +[Match] +Name={{ ansible_default_ipv4.interface }} + +[Network] +DHCP=ipv4