summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2018-02-15 08:57:47 +0000
committerMarkos Chandras <mchandras@suse.de>2018-02-21 17:37:05 +0000
commitcdcfb32414af77abac43440e0ab5b448e72d83e5 (patch)
tree600f06e58f54db46be3072794237762eb02e72e1
parent7c37b9ac8715ebedecf903f9de67c55830fb5b90 (diff)
xci: roles: configure-network: Determine host NIC from Ansible facts
Hardcoding the interface as a variable is very fragile since it varies from host to host. We could use the Ansible facts to find out the interface name and then use that to configure all the VLANs and networking. Change-Id: Ie7e2409d638625b9bede23b6c1fe33dc36f81840 Signed-off-by: Markos Chandras <mchandras@suse.de>
-rw-r--r--xci/installer/kubespray/playbooks/group_vars/all2
-rw-r--r--xci/playbooks/roles/configure-network/tasks/main.yml26
-rw-r--r--xci/playbooks/roles/configure-network/templates/debian/compute00.interface.j230
-rw-r--r--xci/playbooks/roles/configure-network/templates/debian/controller00.interface.j230
-rw-r--r--xci/playbooks/roles/configure-network/templates/debian/opnfv.interface.j230
-rw-r--r--xci/playbooks/roles/configure-network/templates/redhat/interface.ifcfg.j22
-rw-r--r--xci/playbooks/roles/configure-network/templates/suse/suse.interface.j22
-rw-r--r--xci/var/Debian.yml1
-rw-r--r--xci/var/RedHat.yml1
-rw-r--r--xci/var/Suse.yml1
10 files changed, 61 insertions, 64 deletions
diff --git a/xci/installer/kubespray/playbooks/group_vars/all b/xci/installer/kubespray/playbooks/group_vars/all
index 06dccb68..d2c36bfc 100644
--- a/xci/installer/kubespray/playbooks/group_vars/all
+++ b/xci/installer/kubespray/playbooks/group_vars/all
@@ -10,7 +10,7 @@ keepalived_sync_groups:
instances:
- external
-haproxy_keepalived_external_interface: "{{ interface }}"
+haproxy_keepalived_external_interface: "{{ ansible_default_ipv4.interface }}"
haproxy_keepalived_authentication_password: 'keepalived'
keepalived_instances:
external:
diff --git a/xci/playbooks/roles/configure-network/tasks/main.yml b/xci/playbooks/roles/configure-network/tasks/main.yml
index 65abaa40..adcb8669 100644
--- a/xci/playbooks/roles/configure-network/tasks/main.yml
+++ b/xci/playbooks/roles/configure-network/tasks/main.yml
@@ -30,7 +30,7 @@
src: "{{ ansible_os_family | lower }}/{{ ansible_hostname }}.interface.j2"
dest: "/etc/network/interfaces"
- name: restart network service
- shell: "/sbin/ifconfig {{ interface }} 0 && /sbin/ifdown -a && /sbin/ifup -a"
+ shell: "/sbin/ifconfig {{ ansible_default_ipv4.interface }} 0 && /sbin/ifdown -a && /sbin/ifup -a"
when: ansible_os_family | lower == "debian"
- block:
@@ -47,14 +47,14 @@
src: "{{ ansible_os_family | lower }}/suse.interface.j2"
dest: "/etc/sysconfig/network/ifcfg-{{ item.name }}"
with_items:
- - { name: "{{ interface }}" }
- - { name: "{{ interface }}.10", vlan_id: 10 }
- - { name: "{{ interface }}.30", vlan_id: 30 }
- - { name: "{{ interface }}.20", vlan_id: 20 }
- - { name: "br-mgmt", bridge_ports: "{{ interface }}.10", ip: "{{ host_info[inventory_hostname].MGMT_IP }}/22" }
- - { name: "br-vxlan", bridge_ports: "{{ interface }}.30", ip: "{{ host_info[inventory_hostname].VXLAN_IP }}/22" }
- - { name: "br-vlan", bridge_ports: "{{ interface }}", ip: "{{ host_info[inventory_hostname].VLAN_IP }}/24" }
- - { name: "br-storage", bridge_ports: "{{ interface }}.20", ip: "{{ host_info[inventory_hostname].STORAGE_IP }}/22" }
+ - { name: "{{ ansible_default_ipv4.interface }}" }
+ - { name: "{{ ansible_default_ipv4.interface }}.10", vlan_id: 10 }
+ - { name: "{{ ansible_default_ipv4.interface }}.30", vlan_id: 30 }
+ - { name: "{{ ansible_default_ipv4.interface }}.20", vlan_id: 20 }
+ - { name: "br-mgmt", bridge_ports: "{{ ansible_default_ipv4.interface }}.10", ip: "{{ host_info[inventory_hostname].MGMT_IP }}/22" }
+ - { name: "br-vxlan", bridge_ports: "{{ ansible_default_ipv4.interface }}.30", ip: "{{ host_info[inventory_hostname].VXLAN_IP }}/22" }
+ - { name: "br-vlan", bridge_ports: "{{ ansible_default_ipv4.interface }}", ip: "{{ host_info[inventory_hostname].VLAN_IP }}/24" }
+ - { name: "br-storage", bridge_ports: "{{ ansible_default_ipv4.interface }}.20", ip: "{{ host_info[inventory_hostname].STORAGE_IP }}/22" }
- name: Add postup/postdown scripts on SUSE
copy:
@@ -79,10 +79,10 @@
src: "{{ ansible_os_family | lower }}/interface.ifcfg.j2"
dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.name }}"
with_items:
- - { name: "{{ interface }}" , bridge: "br-vlan" }
- - { name: "{{ interface }}.10", bridge: "br-mgmt" , vlan_id: 10 }
- - { name: "{{ interface }}.20", bridge: "br-storage", vlan_id: 20 }
- - { name: "{{ interface }}.30", bridge: "br-vxlan" , vlan_id: 30 }
+ - { name: "{{ ansible_default_ipv4.interface }}" , bridge: "br-vlan" }
+ - { name: "{{ ansible_default_ipv4.interface }}.10", bridge: "br-mgmt" , vlan_id: 10 }
+ - { name: "{{ ansible_default_ipv4.interface }}.20", bridge: "br-storage", vlan_id: 20 }
+ - { name: "{{ ansible_default_ipv4.interface }}.30", bridge: "br-vxlan" , vlan_id: 30 }
- name: Configure networking on CentOS for bridges
template:
src: "{{ ansible_os_family | lower }}/bridge.ifcfg.j2"
diff --git a/xci/playbooks/roles/configure-network/templates/debian/compute00.interface.j2 b/xci/playbooks/roles/configure-network/templates/debian/compute00.interface.j2
index 6d6a3835..2da12f20 100644
--- a/xci/playbooks/roles/configure-network/templates/debian/compute00.interface.j2
+++ b/xci/playbooks/roles/configure-network/templates/debian/compute00.interface.j2
@@ -5,23 +5,23 @@ auto lo
iface lo inet loopback
# Physical interface
-auto {{ interface }}
-iface {{ interface }} inet manual
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
# Container/Host management VLAN interface
-auto {{ interface }}.10
-iface {{ interface }}.10 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
-auto {{ interface }}.30
-iface {{ interface }}.30 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Storage network VLAN interface
-auto {{ interface }}.20
-iface {{ interface }}.20 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Container/Host management bridge
auto br-mgmt
@@ -29,7 +29,7 @@ iface br-mgmt inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.10
+ bridge_ports {{ ansible_default_ipv4.interface }}.10
address {{host_info[inventory_hostname].MGMT_IP}}
netmask 255.255.252.0
@@ -39,7 +39,7 @@ iface br-vxlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.30
+ bridge_ports {{ ansible_default_ipv4.interface }}.30
address {{host_info[inventory_hostname].VXLAN_IP}}
netmask 255.255.252.0
@@ -49,7 +49,7 @@ iface br-vlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}
+ bridge_ports {{ ansible_default_ipv4.interface }}
address {{host_info[inventory_hostname].VLAN_IP}}
netmask 255.255.255.0
gateway 192.168.122.1
@@ -70,6 +70,6 @@ iface br-storage inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.20
+ bridge_ports {{ ansible_default_ipv4.interface }}.20
address {{host_info[inventory_hostname].STORAGE_IP}}
netmask 255.255.252.0
diff --git a/xci/playbooks/roles/configure-network/templates/debian/controller00.interface.j2 b/xci/playbooks/roles/configure-network/templates/debian/controller00.interface.j2
index b461b201..c540f66e 100644
--- a/xci/playbooks/roles/configure-network/templates/debian/controller00.interface.j2
+++ b/xci/playbooks/roles/configure-network/templates/debian/controller00.interface.j2
@@ -5,23 +5,23 @@ auto lo
iface lo inet loopback
# Physical interface
-auto {{ interface }}
-iface {{ interface }} inet manual
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
# Container/Host management VLAN interface
-auto {{ interface }}.10
-iface {{ interface }}.10 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
-auto {{ interface }}.30
-iface {{ interface }}.30 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Storage network VLAN interface (optional)
-auto {{ interface }}.20
-iface {{ interface }}.20 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Container/Host management bridge
auto br-mgmt
@@ -29,7 +29,7 @@ iface br-mgmt inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.10
+ bridge_ports {{ ansible_default_ipv4.interface }}.10
address {{host_info[inventory_hostname].MGMT_IP}}
netmask 255.255.252.0
@@ -39,7 +39,7 @@ iface br-vxlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.30
+ bridge_ports {{ ansible_default_ipv4.interface }}.30
address {{host_info[inventory_hostname].VXLAN_IP}}
netmask 255.255.252.0
@@ -49,7 +49,7 @@ iface br-vlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}
+ bridge_ports {{ ansible_default_ipv4.interface }}
address {{host_info[inventory_hostname].VLAN_IP}}
netmask 255.255.255.0
gateway 192.168.122.1
@@ -69,6 +69,6 @@ iface br-storage inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.20
+ bridge_ports {{ ansible_default_ipv4.interface }}.20
address {{host_info[inventory_hostname].STORAGE_IP}}
netmask 255.255.252.0
diff --git a/xci/playbooks/roles/configure-network/templates/debian/opnfv.interface.j2 b/xci/playbooks/roles/configure-network/templates/debian/opnfv.interface.j2
index 42826414..03f81dbb 100644
--- a/xci/playbooks/roles/configure-network/templates/debian/opnfv.interface.j2
+++ b/xci/playbooks/roles/configure-network/templates/debian/opnfv.interface.j2
@@ -5,23 +5,23 @@ auto lo
iface lo inet loopback
# Physical interface
-auto {{ interface }}
-iface {{ interface }} inet manual
+auto {{ ansible_default_ipv4.interface }}
+iface {{ ansible_default_ipv4.interface }} inet manual
# Container/Host management VLAN interface
-auto {{ interface }}.10
-iface {{ interface }}.10 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.10
+iface {{ ansible_default_ipv4.interface }}.10 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# OpenStack Networking VXLAN (tunnel/overlay) VLAN interface
-auto {{ interface }}.30
-iface {{ interface }}.30 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.30
+iface {{ ansible_default_ipv4.interface }}.30 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Storage network VLAN interface (optional)
-auto {{ interface }}.20
-iface {{ interface }}.20 inet manual
- vlan-raw-device {{ interface }}
+auto {{ ansible_default_ipv4.interface }}.20
+iface {{ ansible_default_ipv4.interface }}.20 inet manual
+ vlan-raw-device {{ ansible_default_ipv4.interface }}
# Container/Host management bridge
auto br-mgmt
@@ -29,7 +29,7 @@ iface br-mgmt inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.10
+ bridge_ports {{ ansible_default_ipv4.interface }}.10
address {{host_info[inventory_hostname].MGMT_IP}}
netmask 255.255.252.0
@@ -39,7 +39,7 @@ iface br-vxlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.30
+ bridge_ports {{ ansible_default_ipv4.interface }}.30
address {{ host_info[inventory_hostname].VXLAN_IP }}
netmask 255.255.252.0
@@ -49,7 +49,7 @@ iface br-vlan inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}
+ bridge_ports {{ ansible_default_ipv4.interface }}
address {{host_info[inventory_hostname].VLAN_IP}}
netmask 255.255.255.0
gateway 192.168.122.1
@@ -61,6 +61,6 @@ iface br-storage inet static
bridge_stp off
bridge_waitport 0
bridge_fd 0
- bridge_ports {{ interface }}.20
+ bridge_ports {{ ansible_default_ipv4.interface }}.20
address {{host_info[inventory_hostname].STORAGE_IP}}
netmask 255.255.252.0
diff --git a/xci/playbooks/roles/configure-network/templates/redhat/interface.ifcfg.j2 b/xci/playbooks/roles/configure-network/templates/redhat/interface.ifcfg.j2
index b0dea0f5..a97ad0cf 100644
--- a/xci/playbooks/roles/configure-network/templates/redhat/interface.ifcfg.j2
+++ b/xci/playbooks/roles/configure-network/templates/redhat/interface.ifcfg.j2
@@ -4,7 +4,7 @@ ONBOOT=yes
BOOTPROTO=none
{% if item.vlan_id is defined %}
VLAN=yes
-ETHERDEVICE={{ interface }}
+ETHERDEVICE={{ ansible_default_ipv4.interface }}
VLAN_ID={{ item.vlan_id }}
{% endif %}
BRIDGE={{ item.bridge }}
diff --git a/xci/playbooks/roles/configure-network/templates/suse/suse.interface.j2 b/xci/playbooks/roles/configure-network/templates/suse/suse.interface.j2
index ffa418d4..27b01eb4 100644
--- a/xci/playbooks/roles/configure-network/templates/suse/suse.interface.j2
+++ b/xci/playbooks/roles/configure-network/templates/suse/suse.interface.j2
@@ -1,7 +1,7 @@
STARTMODE='auto'
BOOTPROTO='static'
{% if item.vlan_id is defined %}
-ETHERDEVICE={{ interface }}
+ETHERDEVICE={{ ansible_default_ipv4.interface }}
VLAN_ID={{ item.vlan_id }}
{% endif %}
{% if item.bridge_ports is defined %}
diff --git a/xci/var/Debian.yml b/xci/var/Debian.yml
index bd07473a..ad3621b6 100644
--- a/xci/var/Debian.yml
+++ b/xci/var/Debian.yml
@@ -8,7 +8,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
# this is the interface the VM nodes are connected to libvirt network "default"
-interface: "ens3"
python_crypto_package_name: python-crypto
docker_package_name: docker.io
docker_service_name: docker
diff --git a/xci/var/RedHat.yml b/xci/var/RedHat.yml
index 814d060e..8ea2e15a 100644
--- a/xci/var/RedHat.yml
+++ b/xci/var/RedHat.yml
@@ -8,7 +8,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
# this is placeholder and left blank intentionally to complete later on
-interface: "ens3"
python_crypto_package_name: python-crypto
docker_package_name: docker
docker_service_name: docker
diff --git a/xci/var/Suse.yml b/xci/var/Suse.yml
index a041e18b..5066defa 100644
--- a/xci/var/Suse.yml
+++ b/xci/var/Suse.yml
@@ -8,7 +8,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
# this is the interface the VM nodes are connected to libvirt network "default"
-interface: "eth0"
python_crypto_package_name: python-pycrypto
docker_package_name: docker
docker_service_name: docker