From 3bc3a8828c3ceefedd08e1767ae6e3bf2df9ac22 Mon Sep 17 00:00:00 2001 From: Harry Huang Date: Wed, 23 Aug 2017 15:05:02 +0800 Subject: Support multiple physnet mapping JIRA: COMPASS-559 1. support multiple mapping in provider_net_mappings of network.yml and create corresponding ovs bridges 2. support seperate config in sys_intf_mappings of network.yml 3. remove linux bridges in compute nodes for ovs port binding convenience 4. support openstack vlan tenant network 5. modify odl and odl_sfc roles to use configurable provider mapping 6. remove some hard coding Change-Id: Ib57484ce60d029f89c647fd5baf2c7af37c85d0b Signed-off-by: Harry Huang --- .../ansible/roles/post-osa/handlers/main.yml | 11 ++++ .../adapters/ansible/roles/post-osa/tasks/main.yml | 12 +++++ .../ansible/roles/post-osa/templates/compute.j2 | 62 ++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100755 deploy/adapters/ansible/roles/post-osa/handlers/main.yml create mode 100644 deploy/adapters/ansible/roles/post-osa/tasks/main.yml create mode 100755 deploy/adapters/ansible/roles/post-osa/templates/compute.j2 (limited to 'deploy/adapters/ansible/roles/post-osa') diff --git a/deploy/adapters/ansible/roles/post-osa/handlers/main.yml b/deploy/adapters/ansible/roles/post-osa/handlers/main.yml new file mode 100755 index 00000000..3d979e6a --- /dev/null +++ b/deploy/adapters/ansible/roles/post-osa/handlers/main.yml @@ -0,0 +1,11 @@ +############################################################################## +## Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD 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 +############################################################################## +--- +- name: restart network service + shell: "/sbin/ifconfig eth0 0 &&/sbin/ifdown -a && \ + /sbin/ifup --ignore-errors -a" diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/main.yml b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml new file mode 100644 index 00000000..cf157d74 --- /dev/null +++ b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml @@ -0,0 +1,12 @@ +--- +- name: remove bridge ubuntu + template: + src: compute.j2 + dest: /etc/network/interfaces + notify: + - restart network service + when: ansible_distribution == 'Ubuntu' + +# TODO +# - name: remove bridge centos +# when: ansible_distribution == 'CentOS' diff --git a/deploy/adapters/ansible/roles/post-osa/templates/compute.j2 b/deploy/adapters/ansible/roles/post-osa/templates/compute.j2 new file mode 100755 index 00000000..9e45fa90 --- /dev/null +++ b/deploy/adapters/ansible/roles/post-osa/templates/compute.j2 @@ -0,0 +1,62 @@ +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +# The loopback network interface +auto lo +iface lo inet loopback + +# Physical interface +auto eth0 +iface eth0 inet static + address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }} + netmask 255.255.255.0 + pre-up ifconfig br-mgmt down || true + pre-up brctl delbr br-mgmt || true + +# external interface +{% set intf_external = compu_sys_mappings["external"]["interface"] %} +{% if compu_sys_mappings["external"]["vlan_tag"] | int %} +{% set intf_external = intf_external + '.' + compu_sys_mappings["external"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_external }} +iface {{ intf_external }} inet static +{% if compu_sys_mappings["external"]["vlan_tag"] | int %} + vlan-raw-device {{ intf_external }} +{% endif %} + address {{ ip_settings[inventory_hostname]["external"]["ip"] }} + netmask 255.255.255.0 + gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }} + pre-up ip link del br-vlan-veth || true + pre-up ifconfig br-external down || true + pre-up brctl delbr br-external || true + +# tenant interface +{% set intf_tenant = compu_sys_mappings["tenant"]["interface"] %} +{% if compu_sys_mappings["tenant"]["vlan_tag"] | int %} +{% set intf_tenant = intf_tenant + '.' + compu_sys_mappings["tenant"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_tenant }} +iface {{ intf_tenant }} inet static +{% if compu_sys_mappings["tenant"]["vlan_tag"] | int %} + vlan-raw-device {{ intf_tenant }} +{% endif %} + address {{ ip_settings[inventory_hostname]["tenant"]["ip"] }} + netmask 255.255.255.0 + pre-up ifconfig br-tenant down || true + pre-up brctl delbr br-tenant || true + +# storage interface +{% set intf_storage = compu_sys_mappings["storage"]["interface"] %} +{% if compu_sys_mappings["storage"]["vlan_tag"] | int %} +{% set intf_storage = intf_storage + '.' + compu_sys_mappings["storage"]["vlan_tag"]|string %} +{% endif %} +auto {{ intf_storage }} +iface {{ intf_storage }} inet static +{% if compu_sys_mappings["storage"]["vlan_tag"] | int %} + vlan-raw-device {{ intf_storage }} +{% endif %} + address {{ ip_settings[inventory_hostname]["storage"]["ip"] }} + netmask 255.255.255.0 + pre-up ifconfig br-storage down || true + pre-up brctl delbr br-storage || true + -- cgit 1.2.3-korg