From a82590eb643383127abea5dc7320445e03d7a9c2 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Mon, 4 Jun 2018 20:59:38 +0100 Subject: roles: bootstrap-host: Ensure DNS info from IDF is respected We are configuring static IPs in the various nodes but we don't do anything for DNS assuming that DNS is being configured by another entity. However, the IDF file already contains DNS information for us so we should use that instead. Moreover, we update the IDF file to use the gateway as DNS instead of the Google one in order to make it more usable on restricted networks. Change-Id: Ieba58ec9558080a1296e204c4f99bae859e9daef Signed-off-by: Markos Chandras --- xci/playbooks/dynamic_inventory.py | 3 +++ xci/playbooks/roles/bootstrap-host/tasks/network_redhat.yml | 5 ----- xci/playbooks/roles/bootstrap-host/tasks/network_suse.yml | 8 ++++++++ .../roles/bootstrap-host/templates/osa/debian.interface.j2 | 3 +++ .../roles/bootstrap-host/templates/osa/redhat.interface.j2 | 7 +++++++ xci/var/idf.yml | 2 +- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/xci/playbooks/dynamic_inventory.py b/xci/playbooks/dynamic_inventory.py index 6d9d217f..b5c4609b 100755 --- a/xci/playbooks/dynamic_inventory.py +++ b/xci/playbooks/dynamic_inventory.py @@ -47,6 +47,7 @@ class XCIInventory(object): self.opnfv_networks['opnfv']['public'] = {} self.opnfv_networks['opnfv']['public']['address'] = '192.168.122.2/24' self.opnfv_networks['opnfv']['public']['gateway'] = '192.168.122.1' + self.opnfv_networks['opnfv']['public']['dns'] = '192.168.122.1' self.opnfv_networks['opnfv']['private'] = {} self.opnfv_networks['opnfv']['private']['address'] = '172.29.240.10/22' self.opnfv_networks['opnfv']['storage'] = {} @@ -110,6 +111,8 @@ class XCIInventory(object): host_networks[hostname][network]['address'] = pdf_host_info['interfaces'][int(network_interface_num)]['address'] + "/" + str(ndata['mask']) if 'gateway' in ndata.keys(): host_networks[hostname][network]['gateway'] = str(ndata['gateway']) + "/" + str(ndata['mask']) + if 'dns' in ndata.keys(): + host_networks[hostname][network]['dns'] = str(ndata['dns']) host_networks.update(self.opnfv_networks) diff --git a/xci/playbooks/roles/bootstrap-host/tasks/network_redhat.yml b/xci/playbooks/roles/bootstrap-host/tasks/network_redhat.yml index b06a8695..c360f15d 100644 --- a/xci/playbooks/roles/bootstrap-host/tasks/network_redhat.yml +++ b/xci/playbooks/roles/bootstrap-host/tasks/network_redhat.yml @@ -24,11 +24,6 @@ loop_control: label: "{{ item.name }}" -- name: Add default route through br-vlan - lineinfile: - path: "/etc/sysconfig/network-scripts/ifcfg-br-vlan" - line: "GATEWAY={{ host_info[inventory_hostname]['public']['gateway'] | ipaddr('address') }}" - - name: restart network service service: name: network diff --git a/xci/playbooks/roles/bootstrap-host/tasks/network_suse.yml b/xci/playbooks/roles/bootstrap-host/tasks/network_suse.yml index c9c9d83c..e2b5aa4a 100644 --- a/xci/playbooks/roles/bootstrap-host/tasks/network_suse.yml +++ b/xci/playbooks/roles/bootstrap-host/tasks/network_suse.yml @@ -30,6 +30,14 @@ dest: "/etc/sysconfig/network/scripts/network-config-suse" mode: 0755 +- name: Configure static DNS on SUSE + lineinfile: + regexp: '^NETCONFIG_DNS_STATIC_SERVERS=.*' + line: "NETCONFIG_DNS_STATIC_SERVERS={{ host_info[inventory_hostname]['public']['dns'] }}" + path: "/etc/sysconfig/network/config" + state: present + when: host_info[inventory_hostname]['public']['dns'] is defined + - name: Configure routes on SUSE template: src: "{{ installer_type }}/{{ ansible_os_family | lower }}.routes.j2" diff --git a/xci/playbooks/roles/bootstrap-host/templates/osa/debian.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/osa/debian.interface.j2 index 3eddce45..f9e4d8df 100644 --- a/xci/playbooks/roles/bootstrap-host/templates/osa/debian.interface.j2 +++ b/xci/playbooks/roles/bootstrap-host/templates/osa/debian.interface.j2 @@ -32,5 +32,8 @@ iface {{ item.name }} inet static {% if item.network is defined and item.network.gateway is defined %} gateway {{ item.network.gateway | ipaddr('address') }} {% endif %} +{% if item.network is defined and item.network.dns is defined %} + dns-nameservers {{ item.network.dns }} +{% endif %} {% endif %} diff --git a/xci/playbooks/roles/bootstrap-host/templates/osa/redhat.interface.j2 b/xci/playbooks/roles/bootstrap-host/templates/osa/redhat.interface.j2 index fa957764..3a51eb86 100644 --- a/xci/playbooks/roles/bootstrap-host/templates/osa/redhat.interface.j2 +++ b/xci/playbooks/roles/bootstrap-host/templates/osa/redhat.interface.j2 @@ -17,3 +17,10 @@ STP=off {% if item.network is defined %} IPADDR={{ item.network.address }} {% endif %} +{% if item.network is defined and item.network.gateway is defined %} +GATEWAY="{{ host_info[inventory_hostname]['public']['gateway'] | ipaddr('address') }}" +{% endif %} +{% if item.network is defined and item.network.dns is defined %} +DNS="{{ host_info[inventory_hostname]['public']['dns'] }}" +{% endif %} +{% endif %} diff --git a/xci/var/idf.yml b/xci/var/idf.yml index 0238baed..4d743cda 100644 --- a/xci/var/idf.yml +++ b/xci/var/idf.yml @@ -25,7 +25,7 @@ idf: network: 192.168.122.0 mask: 24 gateway: 192.168.122.1 - dns: 8.8.8.8 + dns: 192.168.122.1 private: interface: 3 network: 172.29.244.0 -- cgit 1.2.3-korg