From: Markos Chandras Date: Mon, 4 Jun 2018 19:59:38 +0000 (+0100) Subject: roles: bootstrap-host: Ensure DNS info from IDF is respected X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=a82590eb643383127abea5dc7320445e03d7a9c2;p=releng-xci.git 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 --- 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