From 7e4ff797e57c21051bdc1a23bdb5037d7e82d042 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Wed, 22 Nov 2017 21:15:22 -0600 Subject: [PATCH] hand merge of systemd-net with a rename 2 --- roles/network/defaults/main.yml | 1 - roles/network/tasks/NM-debian.yml | 2 +- roles/network/tasks/debian.yml | 36 ++--------------- roles/network/tasks/detected_network.yml | 2 + roles/network/tasks/main.yml | 12 ++++-- roles/network/tasks/sysd-netd-debian.yml | 40 +++++++++++++++++++ .../templates/network/systemd-br0-network.j2 | 15 +++++++ .../templates/network/systemd-br0-slave.j2 | 5 +++ .../network/templates/network/systemd-br0.j2 | 4 ++ 9 files changed, 80 insertions(+), 37 deletions(-) create mode 100644 roles/network/tasks/sysd-netd-debian.yml create mode 100644 roles/network/templates/network/systemd-br0-network.j2 create mode 100644 roles/network/templates/network/systemd-br0-slave.j2 create mode 100644 roles/network/templates/network/systemd-br0.j2 diff --git a/roles/network/defaults/main.yml b/roles/network/defaults/main.yml index 59d7d238d..ea1de51a8 100644 --- a/roles/network/defaults/main.yml +++ b/roles/network/defaults/main.yml @@ -4,7 +4,6 @@ wireless_lan_present: False strict_networking: False iiab_demo_mode: False gui_static_wan: False -has_NM: False # Set defaults for discovery process as strings wifi1: "not found-1" diff --git a/roles/network/tasks/NM-debian.yml b/roles/network/tasks/NM-debian.yml index e8663b8f1..a0055abc9 100644 --- a/roles/network/tasks/NM-debian.yml +++ b/roles/network/tasks/NM-debian.yml @@ -25,7 +25,7 @@ name: network-manager state: restarted when: not nobridge is defined and not no_net_restart - + - name: Restart hostapd when WiFi is present service: name: hostapd diff --git a/roles/network/tasks/debian.yml b/roles/network/tasks/debian.yml index 8eb25081d..69ae60cbd 100644 --- a/roles/network/tasks/debian.yml +++ b/roles/network/tasks/debian.yml @@ -9,7 +9,7 @@ # 4. In lan_controller: wan is off, eth0 and wlan0 under br0 # 5. In gateway: eth0 is wan, and wlan0 is under br0 (only one adapter under br0) # 6. As a slight concess to auto config, if eth1 exists, make it wan, and force gateway - + #- name: In upgrade from earlier IIAB 6.2, delete the resolvconf # package: name=resolvconf # state=absent @@ -37,7 +37,7 @@ - name: Copy the bridge script template: dest=/etc/network/interfaces.d/iiab src=network/systemd.j2 - when: not is_rpi and not has_NM and (iiab_lan_iface == "br0" or wan_ip != "dhcp") + when: not is_rpi and (iiab_lan_iface == "br0" or wan_ip != "dhcp") - name: Copy the bridge script for RPi template: dest=/etc/network/interfaces.d/iiab @@ -57,34 +57,6 @@ service: name=dnsmasq state=stopped when: dnsmasq_install -# do this -#- name: Copy NetworkManager.conf for has_NM -# template: dest=/etc/NetworkManager/NetworkManager.conf -# src=network/NetworkManager.conf -# when: has_NM and iiab_lan_iface == "br0" - -#- name: Copy the bridge script for has_NM -# template: dest=/etc/network/interfaces -# src=network/systemd.j2 -# when: has_NM and not wan_in_interfaces and iiab_lan_iface == "br0" - -# or provide keyfile layout like the XO's used way back. -- name: Create uuid for NM - shell: uuidgen - register: uuid_response - when: has_NM and not wan_in_interfaces and iiab_lan_iface == "br0" - -- name: Put the uuid in place - set_fact: - gen_uuid: "{{ uuid_response.stdout_lines[0] }}" - when: has_NM and not wan_in_interfaces and iiab_lan_iface == "br0" - -# NM might have a watcher on this path and we don't have to restart NM -- name: Copy the bridge script for has_NM - template: dest=/etc/NetworkManager/system-connections/ - src=network/bridge-br0 - when: has_NM and not wan_in_interfaces and iiab_lan_iface == "br0" - - name: Reload systemd shell: systemctl daemon-reload @@ -95,8 +67,8 @@ - name: Restart the networking service service: name=networking state=restarted - when: not nobridge is defined and not has_NM and not no_net_restart - + when: not nobridge is defined and not no_net_restart + - name: Restart hostapd when WiFi is present service: name=hostapd state=restarted when: iiab_wireless_lan_iface is defined and hostapd_enabled and iiab_network_mode != "Appliance" diff --git a/roles/network/tasks/detected_network.yml b/roles/network/tasks/detected_network.yml index a918c6e02..88500873a 100644 --- a/roles/network/tasks/detected_network.yml +++ b/roles/network/tasks/detected_network.yml @@ -22,6 +22,8 @@ - name: Setting dhcpcd_test results set_fact: dhcpcd_result: '{{ ansible_local.local_facts.dhcpcd }}' + systemd_networkd_result: '{{ ansible_local.local_facts.systemd_networkd }}' + network_manager_result: '{{ ansible_local.local_facts.network_manager }}' - name: Check /etc/network/interfaces for gateway shell: grep {{ device_gw }} /etc/network/interfaces | wc -l diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml index f180bb62e..1df97fad6 100644 --- a/roles/network/tasks/main.yml +++ b/roles/network/tasks/main.yml @@ -93,13 +93,13 @@ - include_tasks: NM-debian.yml tags: - network - when: is_debuntu and has_NM + when: is_debuntu and network_manager_result == "enabled" #and not installing -- include_tasks: debian.yml +- include_tasks: sysd-net-debian.yml tags: - network - when: is_debuntu and not is_rpi + when: is_debuntu and systemd_network_result == "enabled" #and not installing - include_tasks: rpi_debian.yml @@ -108,6 +108,12 @@ when: is_debuntu and is_rpi #and not installing +- include_tasks: debian.yml + tags: + - network + when: not is_rpi and network_manager_result != "enabled" and systemd_network_result != "enabled" and is_debuntu +#and not installing + - name: Record iiab_wan_device lineinfile: dest=/etc/iiab/iiab.env regexp='^IIAB_WAN_DEVICE=*' diff --git a/roles/network/tasks/sysd-netd-debian.yml b/roles/network/tasks/sysd-netd-debian.yml new file mode 100644 index 000000000..6e94c9c1f --- /dev/null +++ b/roles/network/tasks/sysd-netd-debian.yml @@ -0,0 +1,40 @@ +# sysd-netd-debian.yml +- name: Copy the bridge script - Creates br0 + template: + dest: /etc/systemd/network/IIAB-Bridge.netdev + src: network/systemd-br0.j2 + +- name: Copy the bridge script - Assigns IP address + template: + dest: /etc/systemd/network/IIAB-Bridge.network + src: network/systemd-br0-network.j2 + +- name: Copy the bridge script - Assigns br0 wired slaves + template: + dest: /etc/systemd/network/IIAB-Slave.network + src: network/systemd-br0-slave.j2 + when: iiab_wired_lan_iface is defined + +- name: Stopping services + include_tasks: down-debian.yml + +- name: Reload systemd + shell: systemctl daemon-reload + +- name: Restart the systemd-networkd service + service: + name: systemd-networkd + enabled: yes + state: restarted + when: not nobridge is defined and not no_net_restart + +- name: Restart hostapd when WiFi is present + service: + name: hostapd + enabled: yes + state: restarted + when: iiab_wireless_lan_iface is defined and hostapd_enabled and iiab_network_mode != "Appliance" + +#- name: dhcp_server may be affected - starting - user choice +# service: name={{ dhcp_service2 }} state=started +# when: iiab_network_mode != "Appliance" diff --git a/roles/network/templates/network/systemd-br0-network.j2 b/roles/network/templates/network/systemd-br0-network.j2 new file mode 100644 index 000000000..c524a50a7 --- /dev/null +++ b/roles/network/templates/network/systemd-br0-network.j2 @@ -0,0 +1,15 @@ +# /etc/systemd/network/IIAB-Bridge.network +[Match] +Name=br0 + +[Network] +Bridge=br0 +LinkLocalAddressing=no +DNS={{ lan_ip }} +Domains={{ iiab_domain }} + +[Address] +Address={{ lan_ip }}/19 + +[Route] +Gateway="" diff --git a/roles/network/templates/network/systemd-br0-slave.j2 b/roles/network/templates/network/systemd-br0-slave.j2 new file mode 100644 index 000000000..8a31fef2e --- /dev/null +++ b/roles/network/templates/network/systemd-br0-slave.j2 @@ -0,0 +1,5 @@ +# /etc/systemd/network/IIAB-Slave.network +[Match] +Name={{ iiab_wired_lan_iface }} +[Network] +Bridge=br0 diff --git a/roles/network/templates/network/systemd-br0.j2 b/roles/network/templates/network/systemd-br0.j2 new file mode 100644 index 000000000..73afe7878 --- /dev/null +++ b/roles/network/templates/network/systemd-br0.j2 @@ -0,0 +1,4 @@ +# /etc/systemd/network/IIAB-Bridge.netdev +[NetDev] +Name=br0 +Kind=bridge