From 13e25494c0047089501ff7fc6d1a766db572a684 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Sat, 1 Aug 2020 00:05:31 -0500 Subject: [PATCH 1/3] RPiOS - use dhcpcd hooks to restart hostapd when br0 appears --- roles/network/templates/hostapd/50-hostapd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/roles/network/templates/hostapd/50-hostapd b/roles/network/templates/hostapd/50-hostapd index 601f8660a..d3741e1ab 100644 --- a/roles/network/templates/hostapd/50-hostapd +++ b/roles/network/templates/hostapd/50-hostapd @@ -1,3 +1,7 @@ +if [ "$interface" = "br0" ] && [ $if_up = "true" ]; then + sleep 2 + systemctl restart dnsmasq +fi if [ "$interface" = "wlan0" ]; then REASON="$reason" From e57cad010ebc6deaf9b58119da5861661ecb67f9 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Sat, 1 Aug 2020 11:06:45 -0500 Subject: [PATCH 2/3] Ubuntu - use networkd-dispatcher hooks to restart hostapd when br0 appears --- roles/network/tasks/enable_services.yml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/roles/network/tasks/enable_services.yml b/roles/network/tasks/enable_services.yml index c52809960..1ce2e06bf 100644 --- a/roles/network/tasks/enable_services.yml +++ b/roles/network/tasks/enable_services.yml @@ -85,23 +85,22 @@ #- debug: # var: nd_enabled -#- name: Check if /etc/networkd-dispatcher/routable.d exists -# stat: -# path: /etc/networkd-dispatcher/routable.d -# register: nd_dir +- name: Check if /etc/networkd-dispatcher/routable.d exists + stat: + path: /etc/networkd-dispatcher/routable.d + register: nd_dir #- debug: # var: nd_dir -#- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and networkd-dispatcher is enabled, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04) -#- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04) -# template: -# src: roles/network/templates/network/dnsmasq.sh.j2 -# dest: /etc/networkd-dispatcher/routable.d/dnsmasq.sh -# mode: 0755 -# owner: root -# group: root -# when: dnsmasq_install and dnsmasq_enabled and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance") +- name: To restart dnsmasq whenever br0 comes up, install /etc/networkd-dispatcher/routable.d/dnsmasq.sh from template (if isn't Appliance, and directory /etc/networkd-dispatcher/routable.d exists, i.e. OS's like Ubuntu 18.04 or later) + template: + src: roles/network/templates/network/dnsmasq.sh.j2 + dest: /etc/networkd-dispatcher/routable.d/dnsmasq.sh + mode: 0755 + owner: root + group: root + when: dnsmasq_install and dnsmasq_enabled and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance") #when: dnsmasq_install and dnsmasq_enabled and nd_enabled is defined and nd_enabled.stdout == "enabled" and nd_dir.stat.exists and nd_dir.stat.isdir and (iiab_network_mode != "Appliance") #when: dnsmasq_install and dnsmasq_enabled and systemd_out.status.UnitFileState == "enabled" and networkd_dir.stat.exists and networkd_dir.stat.isdir and (iiab_network_mode != "Appliance") From 6e29ed1c3a98630adbc55b29a14d21941147d8b9 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Sat, 1 Aug 2020 11:08:02 -0500 Subject: [PATCH 3/3] RPiOS - use 'no-block' with dhcpcd --- roles/network/templates/hostapd/50-hostapd | 3 ++- roles/network/templates/network/dnsmasq.sh.j2 | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/network/templates/hostapd/50-hostapd b/roles/network/templates/hostapd/50-hostapd index d3741e1ab..603f570a8 100644 --- a/roles/network/templates/hostapd/50-hostapd +++ b/roles/network/templates/hostapd/50-hostapd @@ -1,6 +1,7 @@ if [ "$interface" = "br0" ] && [ $if_up = "true" ]; then + syslog info "50-iiab IF_UP br0 restarting dnsmasq" sleep 2 - systemctl restart dnsmasq + systemctl --no-block restart dnsmasq fi if [ "$interface" = "wlan0" ]; then diff --git a/roles/network/templates/network/dnsmasq.sh.j2 b/roles/network/templates/network/dnsmasq.sh.j2 index 1969f8da5..00df42bf3 100755 --- a/roles/network/templates/network/dnsmasq.sh.j2 +++ b/roles/network/templates/network/dnsmasq.sh.j2 @@ -3,5 +3,5 @@ if [ "$IFACE" == "{{ iiab_lan_iface }}" ]; then echo "Restarting dnsmasq in 5 seconds" /bin/sleep 5 && /bin/systemctl --no-block restart dnsmasq.service - echo "Restarting dnsmasq" + echo "Restarted dnsmasq" fi