mirror of
https://github.com/iiab/iiab.git
synced 2025-02-13 11:42:08 +00:00
121 lines
3.9 KiB
YAML
121 lines
3.9 KiB
YAML
- name: Clone wifi if needed
|
|
systemd:
|
|
name: clone-wifi
|
|
state: started
|
|
|
|
#hostapd_enabled False - set in hostapd.yml to avoid the enable with wifi_up_down False
|
|
#no_net_restart: True - main.yml discovered_wireless_iface == iiab_wan_iface
|
|
- name: Restart hostapd when WiFi is present but not when using WiFi as gateway with wifi_up_down False
|
|
systemd:
|
|
name: hostapd
|
|
state: restarted
|
|
when: hostapd_enabled and (wifi_up_down or not no_net_restart)
|
|
|
|
- name: Stop wpa_supplicant on Raspbian
|
|
shell: killall wpa_supplicant
|
|
when: is_raspbian
|
|
|
|
# now pick up denyinterfaces and respawn wpa_supplicant
|
|
- name: Restart wpa_supplicant dhcpcd on Raspbian
|
|
systemd:
|
|
name: "{{ item }}"
|
|
state: restarted
|
|
with_items:
|
|
- wpa_supplicant
|
|
- dhcpcd
|
|
when: is_raspbian
|
|
|
|
- name: Restart wpa_supplicant service on Ubuntu
|
|
systemd:
|
|
name: "{{ item }}"
|
|
state: restarted
|
|
with_items:
|
|
- wpa_supplicant
|
|
when: wifi_up_down and hostapd_enabled and is_ubuntu
|
|
|
|
- name: Reload netplan for Wifi gateway on Ubuntu 18+
|
|
shell: netplan apply
|
|
when: wifi_up_down and is_ubuntu and netplan.stdout.find("yaml") != -1
|
|
|
|
- name: Start named service
|
|
systemd:
|
|
name: "{{ dns_service }}"
|
|
state: restarted
|
|
when: named_enabled and named_install
|
|
|
|
- name: Stop Squid service
|
|
systemd:
|
|
name: "{{ proxy }}"
|
|
state: stopped
|
|
async: 120
|
|
when: squid_install or squid_installed is defined
|
|
|
|
- name: Stop DansGuardian
|
|
systemd:
|
|
name: dansguardian
|
|
state: stopped
|
|
when: dansguardian_install or dansguardian_installed is defined
|
|
|
|
- name: Restart DansGuardian service (dansguardian) except Ubuntu which needs reboot to activate
|
|
systemd:
|
|
name: dansguardian
|
|
state: restarted
|
|
when: dansguardian_enabled and dansguardian_install and ( not is_ubuntu and iiab_stage|int < 4 )
|
|
|
|
# Squid get re-loaded with dispatcher.d
|
|
- name: Restart Squid service ({{ proxy }})
|
|
systemd:
|
|
name: "{{ proxy }}"
|
|
state: restarted
|
|
when: squid_enabled and squid_install
|
|
|
|
- name: Restart Wondershaper service (wondershaper)
|
|
systemd:
|
|
name: wondershaper
|
|
state: restarted
|
|
when: wondershaper_enabled | bool
|
|
|
|
- name: Restart Avahi service (avahi-daemon)
|
|
systemd:
|
|
name: avahi-daemon
|
|
state: restarted
|
|
|
|
- name: Create gateway flag
|
|
shell: echo 1 > /etc/sysconfig/olpc-scripts/setup.d/installed/gateway
|
|
args:
|
|
creates: /etc/sysconfig/olpc-scripts/setup.d/installed/gateway
|
|
when: iiab_network_mode == "Gateway"
|
|
|
|
#netplan de-configures pre-created bridged interfaces
|
|
#- name: Reload netplan when Wifi is not gateway on Ubuntu 18+
|
|
# shell: netplan apply
|
|
# when: not no_net_restart and is_ubuntu and netplan.stdout.find("yaml") != -1
|
|
|
|
- name: Waiting {{ hostapd_wait }} seconds for network to stabilize (dnsmasq will fail if br0 isn't in a 'up' state!)
|
|
shell: sleep {{ hostapd_wait }}
|
|
|
|
- name: Run /usr/bin/iiab-gen-iptables
|
|
command: /usr/bin/iiab-gen-iptables
|
|
|
|
- name: Checking if WiFi slave is active
|
|
shell: brctl show br0 | grep {{ iiab_wireless_lan_iface }} | wc -l
|
|
# when: hostapd_enabled and discovered_wireless_iface != iiab_wan_iface and iiab_lan_iface == "br0"
|
|
when: hostapd_enabled and iiab_lan_iface == "br0"
|
|
register: wifi_slave
|
|
|
|
- name: Restart hostapd if WiFi slave is inactive
|
|
systemd:
|
|
name: hostapd
|
|
state: restarted
|
|
when: hostapd_enabled and wifi_slave.stdout is defined and wifi_slave.stdout == 0
|
|
|
|
#both interfaces.d and systemd-networkd should have br0 available and Appliance lacks br0
|
|
#keep an eye on legacy wifi installs where br0 is present but not 'online' with an ip address
|
|
#due to hostapd didn't go to a carrier state. All others should get dnsmasq restarted
|
|
- name: User choice of dnsmasq or dhcpd - restarting {{ dhcp_service2 }}
|
|
systemd:
|
|
name: "{{ dhcp_service2 }}"
|
|
state: restarted
|
|
when: (not no_net_restart) or wifi_up_down
|
|
#when: (iiab_network_mode != "Appliance") # Sufficient b/c br0 exists thanks to /etc/network/interfaces.d/iiab
|
|
#when: iiab_network_mode != "Appliance" and iiab_wan_iface != discovered_wireless_iface
|