# just lie about active gateway present on XOs to suppress ifcfg-WAN # auto-creation/moving with XOs using NM/system-connections/ via keyfile. # ifcfg-rh acts on /etc/sys*/net*/ifcfg-* where we search for devices. - name: Setting XO has wifi gateway set_fact: user_wan_iface: "{{ discovered_wan_iface }}" when: discovered_wan_iface != "none" and xo_model != "none" and has_ifcfg_gw == "none" - name: Checking for NetworkManager-config-server shell: rpm -qa | grep NetworkManager-config-server | wc -l register: strict_networking_check - name: Found Checking for NetworkManager-config-server set_fact: strict_networking: True when: strict_networking_check == "1" - name: Use restricted network features set_fact: iiab_demo_mode: True when: teamviewer_install and not strict_networking - name: XO wants usb wifi interface as AP mode set_fact: iiab_wireless_lan_iface: "{{ discovered_lan_iface }}" when: num_wifi_interfaces >= "2" and xo_model != "none" and discovered_wan_iface != "none" and discovered_wireless_iface == "eth0" # static backout suppy new template file - name: gui-static-wan set_fact: wan_ip: dhcp gui_static_wan_ip: undefined when: gui_static_wan_ip != "unset" and not gui_static_wan - name: undo gui-static-wan by requesting new template file set_fact: has_WAN: False when: gui_static_wan_ip != "unset" and not gui_static_wan # figure out more than one interfaces to detect. - name: Using GUI_STATIC info set_fact: has_WAN: False has_ifcfg_gw: "none" wan_ip: "{{ gui_static_wan_ip }}" wan_netmask: "{{ gui_static_wan_netmask }}" wan_gateway: "{{ gui_static_wan_gateway }}" wan_nameserver: "{{ gui_static_wan_nameserver }}" when: gui_static_wan and user_wan_iface != "auto" # we need to have an interface name for ifcfg-WAN to be able to change gateway # the DEVICE from the gui. Thanks to George for proving my point about knowing # what device to switch to. #- name: Using GUI_WAN info # set_fact: # user_wan_iface: "{{ gui_wan_iface }}" # when: gui_wan_iface != "unset" and gui_desired_network_role is defined and gui_desired_network_role != "LanController" # should make the GUI buttons the last call - name: Checking iiab_wan_enabled set_fact: user_wan_iface: "none" when: 'not iiab_wan_enabled' # gui wants LanController # keeps ifcfg-WAN but onboot=no # the change over might be a little bumpy ATM. - name: Setting GUI wants LanController set_fact: device_gw: "none" user_wan_iface: "none" iiab_gateway_enabled: "False" when: gui_desired_network_role is defined and gui_desired_network_role == "LanController" # device_gw is used with the LAN detection and LAN's ifcfg file deletion. # single interface vars/ users would need to set iiab_wan_enabled False as above, to disable the WAN # and set user_lan_iface = to suppress the auto detection for the same effect. - name: Setting user_lan_iface for LanController for single interface set_fact: user_lan_iface: "{{ discovered_wan_iface }}" when: discovered_wan_iface != "none" and num_lan_interfaces == "0" and gui_desired_network_role is defined and gui_desired_network_role == "LanController" # override with user_wan_iface setting if no longer in auto - name: setting user WAN fact set_fact: iiab_wan_iface: "{{ user_wan_iface }}" when: user_wan_iface != "auto" # user disabled interface - overriding all other entries - name: Checking iiab_lan_enabled set_fact: user_lan_iface: "none" when: 'not iiab_lan_enabled' # gui wants Appliance Note: could of used iiab_lan_enabled false - name: Setting GUI wants Appliance set_fact: user_lan_iface: "none" iiab_gateway_enabled: "False" when: gui_desired_network_role is defined and gui_desired_network_role == "Appliance" # gui wants Gateway - name: Setting GUI wants and has active Gateway set_fact: user_lan_iface: "auto" user_wan_iface: "{{ iiab_wan_iface }}" when: gui_desired_network_role is defined and gui_desired_network_role == "Gateway" and iiab_wan_iface != "none" # make it so number 2 vars should use user_wan_iface but we can cover a single # wired if dhcp fails the interface should revert to LAN, static address should # stick around but testing gateway response is not preformed. - name: User wants single wired interface as static or dhcp gateway set_fact: user_wan_iface: "{{ discovered_lan_iface }}" when: num_lan_interfaces == "1" and user_lan_iface == "auto" and user_wan_iface == "auto" - name: No LAN configured - Appliance mode set_fact: iiab_network_mode: "Appliance" when: iiab_lan_iface == "none" - name: LAN configured - LanController mode set_fact: iiab_network_mode: "LanController" when: iiab_lan_iface != "" and iiab_wan_iface == "none" - name: LAN configured - Gateway mode set_fact: iiab_network_mode: "Gateway" when: iiab_lan_iface != "none" and iiab_wan_iface != "none" # override with user_lan_iface setting if no longer in auto - name: Setting user LAN fact set_fact: iiab_lan_iface: "{{ user_lan_iface }}" when: 'user_lan_iface != "auto"' # so this works - name: interface count shell: ls /sys/class/net | grep -v -e lo | wc | awk '{print $1}' register: adapter_count # well if there ever was a point to tell the user thing are FUBAR this is it. - name: We're hosed no work interfaces set_fact: iiab_network_mode: "No_network_found" when: adapter_count.stdout|int == "0" # well if there ever was a point to tell the user thing are FUBAR this is it. - name: I'm not guessing declare gateway please set_fact: iiab_network_mode: "Undetectable_use_local_vars" iiab_wan_iface: "none" when: adapter_count.stdout|int >= "5" and device_gw == "none" and gui_wan_iface == "unset" and gui_static_wan is defined - name: Add location section to config file ini_file: dest='{{ iiab_config_file }}' section=network option='{{ item.option }}' value='{{ item.value }}' with_items: - option: 'iiab_wan_enabled' value: '{{ iiab_wan_enabled }}' - option: 'user_wan_iface' value: '{{ user_wan_iface }}' - option: 'iiab_wan_iface' value: '{{ iiab_wan_iface }}' - option: 'iiab_lan_enabled' value: '{{ iiab_lan_enabled }}' - option: 'user_lan_iface' value: '{{ user_lan_iface }}' - option: 'iiab_lan_iface' value: '{{ iiab_lan_iface }}' - option: 'iiab_network_mode' value: '{{ iiab_network_mode }}' - option: 'hostapd_enabled' value: '{{ hostapd_enabled }}' - option: 'host_ssid' value: '{{ host_ssid }}' - option: 'host_wifi_mode' value: '{{ host_wifi_mode }}' - option: 'host_channel' value: '{{ host_channel }}'