diff --git a/roles/network/tasks/debian.yml b/roles/network/tasks/debian.yml index 61f1fa3a1..67cd1722d 100644 --- a/roles/network/tasks/debian.yml +++ b/roles/network/tasks/debian.yml @@ -29,9 +29,13 @@ gui_desired_network_role: "lan_controller" when: not gui_desired_network_role is defined +- name: Recover from putting config in /etc/network/interfaces + template: dest=/etc/network/interfaces + src=network/interfaces.j2 + - name: Copy the bridge script template: dest=/etc/network/interfaces.d/iiab - src=network/interfaces.j2 + src=network/iiab.j2 register: interface - name: start up the dhcpcd service diff --git a/roles/network/tasks/rpi_debian.yml b/roles/network/tasks/rpi_debian.yml index e79e06fa4..edc9bf5d1 100644 --- a/roles/network/tasks/rpi_debian.yml +++ b/roles/network/tasks/rpi_debian.yml @@ -27,9 +27,13 @@ gui_desired_network_role: "LanController" when: not gui_desired_network_role is defined +- name: Rewrite the /etc/network/interfaces file which we currupted + template: dest=/etc/network/interfaces + src=network/interfaces.j2 + - name: Copy the network config script template: dest=/etc/network/interfaces.d/iiab - src=network/interfaces.j2 + src=network/iiab.j2 register: interface - name: If this was a change, things need to shift diff --git a/roles/network/templates/network/iiab.j2 b/roles/network/templates/network/iiab.j2 new file mode 100644 index 000000000..bedb0d283 --- /dev/null +++ b/roles/network/templates/network/iiab.j2 @@ -0,0 +1,69 @@ +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +source /etc/network/interfaces.d/* + +# The loopback network interface +auto lo +iface lo inet loopback + +# iiab_network_mode is {{ gui_desired_network_role }} +{% if discovered_wireless_iface != 'none' %} +# we always want the wireless to be configured (and under bridge) if it exists +auto {{ discovered_wireless_iface }} +iface {{discovered_wireless_iface }} inet manual + pre-up ifconfig $IFACE up + pre-down ifconfig $IFACE down +{% endif %} + +{% if iiab_network_mode == "Appliance" %} +################# APPLIANCE ######################### +auto {{ discovered_wan_iface }} +{% if gui_static_wan == false %} +iface {{ discovered_wan_iface }} inet manual +{% else %} # gui_static_wan_ip is set +iface {{ discovered_wan_iface }} inet static + address {{ gui_static_wan_ip }} + netmask {{ gui_static_wan_netmask }} + gateway {{ gui_static_wan_gateway }} + dns-nameservers {{ gui_static_wan_nameserver }} + dns-search {{ iiab_domain }} +{% endif %} {# end of static_wan #} +{% elif iiab_network_mode == "Gateway" %} +################# GATEWAY ######################### +auto br0 +iface br0 inet static + bridge_ports {% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }} {% endif %} {% if discovered_lan_iface != "none" %} {{ discovered_lan_iface }} {% endif %} + + bridge_maxwait 0 + address {{ lan_ip }} + netmask {{ lan_netmask }} + dns-nameservers {{ lan_ip }} +{% if gui_static_wan == false %} +auto {{ discovered_wan_iface }} +iface {{ discovered_wan_iface }} inet manual +{% else %} # gui_static_wan_ip is set +iface {{ discovered_wan_iface }} inet static + address {{ gui_static_wan_ip }} + netmask {{ gui_static_wan_netmask }} + gateway {{ gui_static_wan_gateway }} + dns-nameservers {{ gui_static_wan_nameserver }} + dns-search {{ iiab_domain }} + post-up systemctl restart dhcpd && systemctl restart hostapd + {% endif %} +{% else %} {# end of iiab_network_mode == Gateway #} + +################# LANCONTROLLER ################### +auto br0 +iface br0 inet static + bridge_ports {% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }} {% endif %} {% if discovered_wan_iface != "none" %} {{ discovered_wan_iface }} {% endif %} + + bridge_maxwait 0 + address {{ lan_ip }} + netmask {{ lan_netmask }} + gateway {{ lan_ip }} + dns-nameservers {{ lan_ip }} + dns-search {{ iiab_domain }} + post-up systemctl restart dhcpd && systemctl restart hostapd +{% endif %} + diff --git a/roles/network/templates/network/interfaces.j2 b/roles/network/templates/network/interfaces.j2 index bedb0d283..54b3a2db9 100644 --- a/roles/network/templates/network/interfaces.j2 +++ b/roles/network/templates/network/interfaces.j2 @@ -7,63 +7,3 @@ source /etc/network/interfaces.d/* auto lo iface lo inet loopback -# iiab_network_mode is {{ gui_desired_network_role }} -{% if discovered_wireless_iface != 'none' %} -# we always want the wireless to be configured (and under bridge) if it exists -auto {{ discovered_wireless_iface }} -iface {{discovered_wireless_iface }} inet manual - pre-up ifconfig $IFACE up - pre-down ifconfig $IFACE down -{% endif %} - -{% if iiab_network_mode == "Appliance" %} -################# APPLIANCE ######################### -auto {{ discovered_wan_iface }} -{% if gui_static_wan == false %} -iface {{ discovered_wan_iface }} inet manual -{% else %} # gui_static_wan_ip is set -iface {{ discovered_wan_iface }} inet static - address {{ gui_static_wan_ip }} - netmask {{ gui_static_wan_netmask }} - gateway {{ gui_static_wan_gateway }} - dns-nameservers {{ gui_static_wan_nameserver }} - dns-search {{ iiab_domain }} -{% endif %} {# end of static_wan #} -{% elif iiab_network_mode == "Gateway" %} -################# GATEWAY ######################### -auto br0 -iface br0 inet static - bridge_ports {% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }} {% endif %} {% if discovered_lan_iface != "none" %} {{ discovered_lan_iface }} {% endif %} - - bridge_maxwait 0 - address {{ lan_ip }} - netmask {{ lan_netmask }} - dns-nameservers {{ lan_ip }} -{% if gui_static_wan == false %} -auto {{ discovered_wan_iface }} -iface {{ discovered_wan_iface }} inet manual -{% else %} # gui_static_wan_ip is set -iface {{ discovered_wan_iface }} inet static - address {{ gui_static_wan_ip }} - netmask {{ gui_static_wan_netmask }} - gateway {{ gui_static_wan_gateway }} - dns-nameservers {{ gui_static_wan_nameserver }} - dns-search {{ iiab_domain }} - post-up systemctl restart dhcpd && systemctl restart hostapd - {% endif %} -{% else %} {# end of iiab_network_mode == Gateway #} - -################# LANCONTROLLER ################### -auto br0 -iface br0 inet static - bridge_ports {% if discovered_wireless_iface != "none" %} {{ discovered_wireless_iface }} {% endif %} {% if discovered_wan_iface != "none" %} {{ discovered_wan_iface }} {% endif %} - - bridge_maxwait 0 - address {{ lan_ip }} - netmask {{ lan_netmask }} - gateway {{ lan_ip }} - dns-nameservers {{ lan_ip }} - dns-search {{ iiab_domain }} - post-up systemctl restart dhcpd && systemctl restart hostapd -{% endif %} -