From e7491c89ac3a78ccf4d682e0741dd51c4817b6a5 Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Thu, 30 Mar 2017 14:11:59 +0200 Subject: [PATCH] xci: Networking fixes to introduce role and interface var Network configuration task and accompanied handler put into a role and handler is converted to task. Distro specific var, interface, is introduced to ensure we do not hardcode the interface which might not be available. Update the templates accordingly. Change-Id: I667620fe22c93a9b20a1d8c1b7b0051d7647b591 Signed-off-by: Fatih Degirmenci --- prototypes/xci/playbooks/configure-opnfvhost.yml | 13 ++-------- .../roles/configure-network/tasks/main.yml | 16 ++++++++++++ prototypes/xci/template/compute.interface.j2 | 30 +++++++++++----------- prototypes/xci/template/controller.interface.j2 | 30 +++++++++++----------- prototypes/xci/template/opnfv.interface.j2 | 30 +++++++++++----------- prototypes/xci/var/Debian.yml | 3 ++- 6 files changed, 65 insertions(+), 57 deletions(-) create mode 100644 prototypes/xci/playbooks/roles/configure-network/tasks/main.yml diff --git a/prototypes/xci/playbooks/configure-opnfvhost.yml b/prototypes/xci/playbooks/configure-opnfvhost.yml index 868052d40..abebd1d7f 100644 --- a/prototypes/xci/playbooks/configure-opnfvhost.yml +++ b/prototypes/xci/playbooks/configure-opnfvhost.yml @@ -48,18 +48,9 @@ shell: "/bin/cp -rf {{OPNFV_RELENG_PATH}}/prototypes/xci/file/setup-openstack.yml {{OPENSTACK_OSA_PATH}}/playbooks" - name: copy OPNFV role requirements shell: "/bin/cp -rf {{OPNFV_RELENG_PATH}}/prototypes/xci/file/ansible-role-requirements.yml {{OPENSTACK_OSA_PATH}}" + roles: # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros - # TODO: convert this into a role - - name: configure network for ubuntu xenial - template: - src: ../template/opnfv.interface.j2 - dest: /etc/network/interfaces - notify: - - restart ubuntu xenial network service - when: ansible_distribution_release == "xenial" - handlers: - - name: restart ubuntu xenial network service - shell: "/sbin/ifconfig ens3 0 &&/sbin/ifdown -a && /sbin/ifup -a" + - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/opnfv.interface.j2", dest: "/etc/network/interfaces" } - hosts: localhost remote_user: root tasks: diff --git a/prototypes/xci/playbooks/roles/configure-network/tasks/main.yml b/prototypes/xci/playbooks/roles/configure-network/tasks/main.yml new file mode 100644 index 000000000..8bc84822c --- /dev/null +++ b/prototypes/xci/playbooks/roles/configure-network/tasks/main.yml @@ -0,0 +1,16 @@ +--- +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2017 Ericsson AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +# TODO: this role needs to be adjusted for different distros +- name: configure network for {{ ansible_os_family }} on interface {{ interface }} + template: + src: "{{ src }}" + dest: "{{ dest }}" +- name: restart ubuntu xenial network service + shell: "/sbin/ifconfig {{ interface }} 0 &&/sbin/ifdown -a && /sbin/ifup -a" diff --git a/prototypes/xci/template/compute.interface.j2 b/prototypes/xci/template/compute.interface.j2 index 1719f6a08..0c5147c45 100644 --- a/prototypes/xci/template/compute.interface.j2 +++ b/prototypes/xci/template/compute.interface.j2 @@ -7,23 +7,23 @@ iface lo inet loopback # Physical interface -auto ens3 -iface ens3 inet manual +auto {{ interface }} +iface {{ interface }} inet manual # Container/Host management VLAN interface -auto ens3.10 -iface ens3.10 inet manual - vlan-raw-device ens3 +auto {{ interface }}.10 +iface {{ interface }}.10 inet manual + vlan-raw-device {{ interface }} # OpenStack Networking VXLAN (tunnel/overlay) VLAN interface -auto ens3.30 -iface ens3.30 inet manual - vlan-raw-device ens3 +auto {{ interface }}.30 +iface {{ interface }}.30 inet manual + vlan-raw-device {{ interface }} # Storage network VLAN interface (optional) -auto ens3.20 -iface ens3.20 inet manual - vlan-raw-device ens3 +auto {{ interface }}.20 +iface {{ interface }}.20 inet manual + vlan-raw-device {{ interface }} # Container/Host management bridge auto br-mgmt @@ -31,7 +31,7 @@ iface br-mgmt inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.10 + bridge_ports {{ interface }}.10 address {{host_info[inventory_hostname].MGMT_IP}} netmask 255.255.252.0 @@ -41,7 +41,7 @@ iface br-vxlan inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.30 + bridge_ports {{ interface }}.30 address {{host_info[inventory_hostname].VXLAN_IP}} netmask 255.255.252.0 @@ -51,7 +51,7 @@ iface br-vlan inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3 + bridge_ports {{ interface }} address {{host_info[inventory_hostname].VLAN_IP}} netmask 255.255.255.0 gateway 192.168.122.1 @@ -81,6 +81,6 @@ iface br-storage inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.20 + bridge_ports {{ interface }}.20 address {{host_info[inventory_hostname].STORAGE_IP}} netmask 255.255.252.0 diff --git a/prototypes/xci/template/controller.interface.j2 b/prototypes/xci/template/controller.interface.j2 index 74aeea99d..fbaa8b8dd 100644 --- a/prototypes/xci/template/controller.interface.j2 +++ b/prototypes/xci/template/controller.interface.j2 @@ -6,23 +6,23 @@ auto lo iface lo inet loopback # Physical interface -auto ens3 -iface ens3 inet manual +auto {{ interface }} +iface {{ interface }} inet manual # Container/Host management VLAN interface -auto ens3.10 -iface ens3.10 inet manual - vlan-raw-device ens3 +auto {{ interface }}.10 +iface {{ interface }}.10 inet manual + vlan-raw-device {{ interface }} # OpenStack Networking VXLAN (tunnel/overlay) VLAN interface -auto ens3.30 -iface ens3.30 inet manual - vlan-raw-device ens3 +auto {{ interface }}.30 +iface {{ interface }}.30 inet manual + vlan-raw-device {{ interface }} # Storage network VLAN interface (optional) -auto ens3.20 -iface ens3.20 inet manual - vlan-raw-device ens3 +auto {{ interface }}.20 +iface {{ interface }}.20 inet manual + vlan-raw-device {{ interface }} # Container/Host management bridge auto br-mgmt @@ -30,7 +30,7 @@ iface br-mgmt inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.10 + bridge_ports {{ interface }}.10 address {{host_info[inventory_hostname].MGMT_IP}} netmask 255.255.252.0 @@ -46,7 +46,7 @@ iface br-vxlan inet manual bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.30 + bridge_ports {{ interface }}.30 # OpenStack Networking VLAN bridge auto br-vlan @@ -54,7 +54,7 @@ iface br-vlan inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3 + bridge_ports {{ interface }} address {{host_info[inventory_hostname].VLAN_IP}} netmask 255.255.255.0 gateway 192.168.122.1 @@ -66,6 +66,6 @@ iface br-storage inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.20 + bridge_ports {{ interface }}.20 address {{host_info[inventory_hostname].STORAGE_IP}} netmask 255.255.252.0 diff --git a/prototypes/xci/template/opnfv.interface.j2 b/prototypes/xci/template/opnfv.interface.j2 index 74aeea99d..fbaa8b8dd 100644 --- a/prototypes/xci/template/opnfv.interface.j2 +++ b/prototypes/xci/template/opnfv.interface.j2 @@ -6,23 +6,23 @@ auto lo iface lo inet loopback # Physical interface -auto ens3 -iface ens3 inet manual +auto {{ interface }} +iface {{ interface }} inet manual # Container/Host management VLAN interface -auto ens3.10 -iface ens3.10 inet manual - vlan-raw-device ens3 +auto {{ interface }}.10 +iface {{ interface }}.10 inet manual + vlan-raw-device {{ interface }} # OpenStack Networking VXLAN (tunnel/overlay) VLAN interface -auto ens3.30 -iface ens3.30 inet manual - vlan-raw-device ens3 +auto {{ interface }}.30 +iface {{ interface }}.30 inet manual + vlan-raw-device {{ interface }} # Storage network VLAN interface (optional) -auto ens3.20 -iface ens3.20 inet manual - vlan-raw-device ens3 +auto {{ interface }}.20 +iface {{ interface }}.20 inet manual + vlan-raw-device {{ interface }} # Container/Host management bridge auto br-mgmt @@ -30,7 +30,7 @@ iface br-mgmt inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.10 + bridge_ports {{ interface }}.10 address {{host_info[inventory_hostname].MGMT_IP}} netmask 255.255.252.0 @@ -46,7 +46,7 @@ iface br-vxlan inet manual bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.30 + bridge_ports {{ interface }}.30 # OpenStack Networking VLAN bridge auto br-vlan @@ -54,7 +54,7 @@ iface br-vlan inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3 + bridge_ports {{ interface }} address {{host_info[inventory_hostname].VLAN_IP}} netmask 255.255.255.0 gateway 192.168.122.1 @@ -66,6 +66,6 @@ iface br-storage inet static bridge_stp off bridge_waitport 0 bridge_fd 0 - bridge_ports ens3.20 + bridge_ports {{ interface }}.20 address {{host_info[inventory_hostname].STORAGE_IP}} netmask 255.255.252.0 diff --git a/prototypes/xci/var/Debian.yml b/prototypes/xci/var/Debian.yml index 6d03e0f32..d13d08097 100644 --- a/prototypes/xci/var/Debian.yml +++ b/prototypes/xci/var/Debian.yml @@ -7,4 +7,5 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# this is placeholder and left blank intentionally to complete later on +# this is the interface the VM nodes are connected to libvirt network "default" +interface: "ens3" -- 2.16.6