From a669d02598dd09421a75fedaaa441b39598c5eb0 Mon Sep 17 00:00:00 2001 From: Lars Beckers <lars.beckers@rwth-aachen.de> Date: Tue, 10 Jul 2018 18:14:21 +0200 Subject: [PATCH] radius-client: add functional "dependency-management" --- radius-client/tasks/main.yml | 32 +++++++++++++++++++ .../templates/networkd-override.conf.j2 | 2 ++ radius-client/templates/wpa_wait.sh.j2 | 5 +++ 3 files changed, 39 insertions(+) create mode 100644 radius-client/templates/networkd-override.conf.j2 create mode 100755 radius-client/templates/wpa_wait.sh.j2 diff --git a/radius-client/tasks/main.yml b/radius-client/tasks/main.yml index bf2ae31..7675c3b 100644 --- a/radius-client/tasks/main.yml +++ b/radius-client/tasks/main.yml @@ -42,6 +42,38 @@ tags: - 8021x +- name: ensure a script allows waiting for a connection + template: + src: wpa_wait.sh.j2 + dest: /usr/local/bin/wpa_wait.sh + owner: root + group: root + mode: 0755 + tags: + - 8021x + +- name: ensure we can override networkd service settings + file: + state: directory + path: /etc/systemd/system/systemd-networkd.service.d + owner: root + group: root + mode: 0644 + tags: + - 8021x + +- name: ensure systemd-networkd waits for wpa_supplicant to authenticate + template: + src: networkd-override.conf.j2 + dest: /etc/systemd/system/systemd-networkd.service.d/override.conf + owner: root + group: root + mode: 0644 + notify: + - reload systemd service files + tags: + - 8021x + - meta: flush_handlers - name: ensure wpasupplicant is enabled and running diff --git a/radius-client/templates/networkd-override.conf.j2 b/radius-client/templates/networkd-override.conf.j2 new file mode 100644 index 0000000..f61ae97 --- /dev/null +++ b/radius-client/templates/networkd-override.conf.j2 @@ -0,0 +1,2 @@ +[Service] +ExecStartPre=/usr/local/bin/wpa_wait.sh diff --git a/radius-client/templates/wpa_wait.sh.j2 b/radius-client/templates/wpa_wait.sh.j2 new file mode 100755 index 0000000..13a3a0f --- /dev/null +++ b/radius-client/templates/wpa_wait.sh.j2 @@ -0,0 +1,5 @@ +#!/bin/bash +journalctl -u wpa_supplicant-wired@{{ ansible_default_ipv4.interface }} -b | tail -n1 | grep CONNECTED +while [ $? == 1 ]; do + journalctl -u wpa_supplicant-wired@{{ ansible_default_ipv4.interface }} -b | tail -n1 | grep CONNECTED +done -- GitLab