From 78cd58ca8a0e6785e58333e96bf0ae4b76940f40 Mon Sep 17 00:00:00 2001 From: Jerry Vonau Date: Sat, 9 Sep 2017 20:54:23 -0500 Subject: [PATCH] boolean in template needs ==t/f --- roles/network/tasks/debian.yml | 13 +++-- roles/network/tasks/rpi_debian.yml | 5 +- roles/network/templates/network/interfaces.j2 | 48 +++++++++++++++++-- 3 files changed, 58 insertions(+), 8 deletions(-) diff --git a/roles/network/tasks/debian.yml b/roles/network/tasks/debian.yml index 7f0223134..55a538712 100644 --- a/roles/network/tasks/debian.yml +++ b/roles/network/tasks/debian.yml @@ -23,20 +23,27 @@ - name: For upgrades from earlier IIAB 6.2, remove br0 file file: path=/etc/network/interfaces.d/br0 state=absent + when: iiab_lan_iface != "br0" and wan_ip == "dhcp" - name: Default to 'lan_controller' set_fact: 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: Supply resolvconf.conf + template: dest=/etc/resolvconf.conf + src=network/resolvconf.j2 + +- name: Supply dhcpcd.conf + template: dest=/etc/dhcpcd.conf + src=network/dhcpcd.conf.j2 + when: dhcpcd_result == "enabled" and (iiab_lan_iface == "br0" or wan_ip != "dhcp") - name: Copy the bridge script template: dest=/etc/network/interfaces.d/iiab src=network/iiab.j2 register: interface + when: iiab_lan_iface == "br0" or wan_ip != "dhcp" - name: Start up the dhcpcd service service: name=dhcpcd diff --git a/roles/network/tasks/rpi_debian.yml b/roles/network/tasks/rpi_debian.yml index e563634d9..3aa7b7441 100644 --- a/roles/network/tasks/rpi_debian.yml +++ b/roles/network/tasks/rpi_debian.yml @@ -21,6 +21,7 @@ - name: On upgrade from earlier IIAB versions, remove /etc/network/interfaces.d/br0 file: path=/etc/network/interfaces.d/br0 state=absent + when: iiab_lan_iface != "br0" and wan_ip == "dhcp" - name: Default to 'LanController' set_fact: @@ -33,12 +34,14 @@ - name: Supply our own dhcpcd.conf template: dest=/etc/dhcpcd.conf - src=network/dhcpcd.conf + src=network/dhcpcd.conf.j2 + when: iiab_lan_iface == "br0" or wan_ip != "dhcp" - name: Copy the network config script template: dest=/etc/network/interfaces.d/iiab src=network/iiab.j2 register: interface + when: iiab_lan_iface == "br0" or wan_ip != "dhcp" - name: If this was a change, things need to shift service: name=hostapd state=stopped diff --git a/roles/network/templates/network/interfaces.j2 b/roles/network/templates/network/interfaces.j2 index 54b3a2db9..fb2e3a28f 100644 --- a/roles/network/templates/network/interfaces.j2 +++ b/roles/network/templates/network/interfaces.j2 @@ -1,9 +1,49 @@ # 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/* +{% if iiab_network_mode == "Appliance" %} +################# APPLIANCE ######################### +{% if dhcpcd_result != "enabled" or wan_in_interfaces == "false" %} +auto {{ iiab_wan_iface }} +iface {{ iiab_wan_iface }} inet dhcp +{% else %} # gui_static_wan_ip is set +iface {{ iiab_wan_iface }} inet manual +{% endif %} {# end of dhcp_wan #} -# The loopback network interface -auto lo -iface lo inet loopback +{% if wan_ip != "dhcp" %} +auto {{ iiab_wan_iface }} +iface {{ iiab_wan_iface }} inet static + address {{ wan_ip }} + netmask {{ wan_netmask }} + gateway {{ wan_gateway }} + dns-nameservers {{ 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 iiab_wireless_lan_iface != "none" %} {{ iiab_wireless_lan_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 dhcpcd_result != "enabled" or wan_in_interfaces == "false" %} +auto {{ iiab_wan_iface }} +iface {{ iiab_wan_iface }} inet dhcp +{% else %} # gui_static_wan_ip is set +iface {{ iiab_wan_iface }} inet manual +{% endif %} {# end of dhcp_wan #} + +{% if wan_ip != "dhcp" %} +auto {{ iiab_wan_iface }} +iface {{ iiab_wan_iface }} inet static + address {{ wan_ip }} + netmask {{ wan_netmask }} + gateway {{ wan_gateway }} + dns-nameservers {{ wan_nameserver }} + dns-search {{ iiab_domain }} + {% endif %} +{% else %} {# end of iiab_network_mode == Gateway #}