xci: Fix network configuration 49/33449/2
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>
Tue, 18 Apr 2017 08:04:48 +0000 (10:04 +0200)
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>
Tue, 18 Apr 2017 08:19:12 +0000 (10:19 +0200)
This change
- sets static IP for controller nodes' vxlan bridges as stated
in osa documentation: compute and network hosts must have an IP [1]
- configures IPs for controller nodes' vxlan bridges.
- removes the additional vlan ip from compute nodes as it seems to
be there for all in one.
- removes glean.rules as they mess with the network configuration once
the network changes are applied.
- removes the contents of interfaces.d as osa populates config for
lxc bridges and includes this config in interfaces file thus all the
files in interfaces.d must be removed in order not to mess with the
network configuration.
- updates modules appropriately.

[1] https://docs.openstack.org/project-deploy-guide/openstack-ansible/draft/app-config-prod.html

Change-Id: I84d5f07216c8d0246da06080fb0ed19f917d6637
Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
prototypes/xci/file/ha/configure-targethosts.yml
prototypes/xci/file/ha/flavor-vars.yml
prototypes/xci/file/mini/configure-targethosts.yml
prototypes/xci/file/mini/flavor-vars.yml
prototypes/xci/file/modules [deleted file]
prototypes/xci/file/noha/configure-targethosts.yml
prototypes/xci/file/noha/flavor-vars.yml
prototypes/xci/playbooks/roles/configure-network/tasks/main.yml
prototypes/xci/template/compute.interface.j2
prototypes/xci/template/controller.interface.j2
prototypes/xci/template/opnfv.interface.j2

index 6dc147f..cdbe390 100644 (file)
@@ -6,10 +6,6 @@
       copy:
         src: ../file/authorized_keys
         dest: /root/.ssh/authorized_keys
-    - name: configure modules
-      copy:
-        src: ../file/modules
-        dest: /etc/modules
 
 - hosts: controller
   remote_user: root
@@ -18,7 +14,7 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
 
 - hosts: compute
   remote_user: root
@@ -27,7 +23,7 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
 
 - hosts: compute01
   remote_user: root
index 3cd1d62..167502c 100644 (file)
@@ -1,37 +1,39 @@
 ---
 host_info: {
     'opnfv': {
-        'MGMT_IP': '172.29.236.10',
         'VLAN_IP': '192.168.122.2',
+        'MGMT_IP': '172.29.236.10',
+        'VXLAN_IP': '172.29.240.10',
         'STORAGE_IP': '172.29.244.10'
     },
     'controller00': {
-        'MGMT_IP': '172.29.236.11',
         'VLAN_IP': '192.168.122.3',
+        'MGMT_IP': '172.29.236.11',
+        'VXLAN_IP': '172.29.240.11',
         'STORAGE_IP': '172.29.244.11'
     },
     'controller01': {
-        'MGMT_IP': '172.29.236.12',
         'VLAN_IP': '192.168.122.4',
+        'MGMT_IP': '172.29.236.12',
+        'VXLAN_IP': '172.29.240.12',
         'STORAGE_IP': '172.29.244.12'
     },
     'controller02': {
-        'MGMT_IP': '172.29.236.13',
         'VLAN_IP': '192.168.122.5',
+        'MGMT_IP': '172.29.236.13',
+        'VXLAN_IP': '172.29.240.13',
         'STORAGE_IP': '172.29.244.13'
     },
     'compute00': {
-        'MGMT_IP': '172.29.236.14',
         'VLAN_IP': '192.168.122.6',
-        'STORAGE_IP': '172.29.244.14',
-        'VLAN_IP_SECOND': '173.29.241.1',
-        'VXLAN_IP': '172.29.240.14'
+        'MGMT_IP': '172.29.236.14',
+        'VXLAN_IP': '172.29.240.14',
+        'STORAGE_IP': '172.29.244.14'
     },
     'compute01': {
-        'MGMT_IP': '172.29.236.15',
         'VLAN_IP': '192.168.122.7',
-        'STORAGE_IP': '172.29.244.15',
-        'VLAN_IP_SECOND': '173.29.241.2',
-        'VXLAN_IP': '172.29.240.15'
+        'MGMT_IP': '172.29.236.15',
+        'VXLAN_IP': '172.29.240.15',
+        'STORAGE_IP': '172.29.244.15'
     }
 }
index 395f44a..8daf7d4 100644 (file)
@@ -6,10 +6,6 @@
       copy:
         src: ../file/authorized_keys
         dest: /root/.ssh/authorized_keys
-    - name: configure modules
-      copy:
-        src: ../file/modules
-        dest: /etc/modules
 
 - hosts: controller
   remote_user: root
@@ -18,7 +14,7 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
 
 - hosts: compute
   remote_user: root
@@ -27,6 +23,6 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
   # TODO: this role is for configuring NFS on xenial and adjustment needed for other distros
     - role: configure-nfs
index 01fba71..0d446ba 100644 (file)
@@ -1,19 +1,20 @@
 ---
 host_info: {
     'opnfv': {
-        'MGMT_IP': '172.29.236.10',
         'VLAN_IP': '192.168.122.2',
+        'MGMT_IP': '172.29.236.10',
+        'VXLAN_IP': '172.29.240.10',
         'STORAGE_IP': '172.29.244.10'
     },
     'controller00': {
-        'MGMT_IP': '172.29.236.11',
         'VLAN_IP': '192.168.122.3',
+        'MGMT_IP': '172.29.236.11',
+        'VXLAN_IP': '172.29.240.11',
         'STORAGE_IP': '172.29.244.11'
     },
     'compute00': {
-        'MGMT_IP': '172.29.236.12',
         'VLAN_IP': '192.168.122.4',
-        'VLAN_IP_SECOND': '173.29.241.1',
+        'MGMT_IP': '172.29.236.12',
         'VXLAN_IP': '172.29.240.12',
         'STORAGE_IP': '172.29.244.12'
     },
diff --git a/prototypes/xci/file/modules b/prototypes/xci/file/modules
deleted file mode 100644 (file)
index 60a517f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# /etc/modules: kernel modules to load at boot time.
-#
-# This file contains the names of kernel modules that should be loaded
-# at boot time, one per line. Lines beginning with "#" are ignored.
-# Parameters can be specified after the module name.
-
-bonding
-8021q
index 6dc147f..cdbe390 100644 (file)
@@ -6,10 +6,6 @@
       copy:
         src: ../file/authorized_keys
         dest: /root/.ssh/authorized_keys
-    - name: configure modules
-      copy:
-        src: ../file/modules
-        dest: /etc/modules
 
 - hosts: controller
   remote_user: root
@@ -18,7 +14,7 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/controller.interface.j2", dest: "/etc/network/interfaces" }
 
 - hosts: compute
   remote_user: root
@@ -27,7 +23,7 @@
     - ../var/flavor-vars.yml
   roles:
     # TODO: this only works for ubuntu/xenial and need to be adjusted for other distros
-    - { role: configure-network, when: ansible_distribution_release == "xenial", src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
+    - { role: configure-network, src: "../template/compute.interface.j2", dest: "/etc/network/interfaces" }
 
 - hosts: compute01
   remote_user: root
index 7f52d34..3c69a34 100644 (file)
@@ -1,26 +1,26 @@
 ---
 host_info: {
     'opnfv': {
-        'MGMT_IP': '172.29.236.10',
         'VLAN_IP': '192.168.122.2',
+        'MGMT_IP': '172.29.236.10',
+        'VXLAN_IP': '172.29.240.10',
         'STORAGE_IP': '172.29.244.10'
     },
     'controller00': {
-        'MGMT_IP': '172.29.236.11',
         'VLAN_IP': '192.168.122.3',
+        'MGMT_IP': '172.29.236.11',
+        'VXLAN_IP': '172.29.240.11',
         'STORAGE_IP': '172.29.244.11'
     },
     'compute00': {
-        'MGMT_IP': '172.29.236.12',
         'VLAN_IP': '192.168.122.4',
-        'VLAN_IP_SECOND': '173.29.241.1',
+        'MGMT_IP': '172.29.236.12',
         'VXLAN_IP': '172.29.240.12',
         'STORAGE_IP': '172.29.244.12'
     },
     'compute01': {
-        'MGMT_IP': '172.29.236.13',
         'VLAN_IP': '192.168.122.5',
-        'VLAN_IP_SECOND': '173.29.241.2',
+        'MGMT_IP': '172.29.236.13',
         'VXLAN_IP': '172.29.240.13',
         'STORAGE_IP': '172.29.244.13'
     }
index 8bc8482..aafadf7 100644 (file)
@@ -8,9 +8,27 @@
 # 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"
+- block:
+    - name: configure modules
+      lineinfile:
+        dest: /etc/modules
+        state: present
+        create: yes
+        line: "8021q"
+    - name: add modules
+      modprobe:
+        name: 8021q
+        state: present
+    - name: ensure glean rules are removed
+      file:
+        path: "/etc/udev/rules.d/99-glean.rules"
+        state: absent
+    - name: ensure interfaces.d folder is empty
+      shell: "/bin/rm -rf /etc/network/interfaces.d/*"
+    - name: ensure interfaces file is updated
+      template:
+        src: "{{ src }}"
+        dest: "{{ dest }}"
+    - name: restart network service
+      shell: "/sbin/ifconfig {{ interface }} 0 && /sbin/ifdown -a && /sbin/ifup -a"
+  when: ansible_distribution_release == "xenial"
index 0c5147c..094544c 100644 (file)
@@ -1,11 +1,7 @@
-# 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 {{ interface }}
 iface {{ interface }} inet manual
@@ -20,7 +16,7 @@ auto {{ interface }}.30
 iface {{ interface }}.30 inet manual
     vlan-raw-device {{ interface }}
 
-# Storage network VLAN interface (optional)
+# Storage network VLAN interface
 auto {{ interface }}.20
 iface {{ interface }}.20 inet manual
     vlan-raw-device {{ interface }}
@@ -55,6 +51,7 @@ iface br-vlan inet static
     address {{host_info[inventory_hostname].VLAN_IP}}
     netmask 255.255.255.0
     gateway 192.168.122.1
+    dns-nameserver 8.8.8.8 8.8.4.4
     offload-sg off
     # Create veth pair, don't bomb if already exists
     pre-up ip link add br-vlan-veth type veth peer name eth12 || true
@@ -65,17 +62,7 @@ iface br-vlan inet static
     post-down ip link del br-vlan-veth || true
     bridge_ports br-vlan-veth
 
-# Add an additional address to br-vlan
-iface br-vlan inet static
-    # Flat network default gateway
-    # -- This needs to exist somewhere for network reachability
-    # -- from the router namespace for floating IP paths.
-    # -- Putting this here is primarily for tempest to work.
-    address {{host_info[inventory_hostname].VLAN_IP_SECOND}}
-    netmask 255.255.252.0
-    dns-nameserver 8.8.8.8 8.8.4.4
-
-# compute1 Storage bridge
+# OpenStack Storage bridge
 auto br-storage
 iface br-storage inet static
     bridge_stp off
index fbaa8b8..638e78e 100644 (file)
@@ -1,6 +1,3 @@
-# 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
@@ -35,18 +32,14 @@ iface br-mgmt inet static
     netmask 255.255.252.0
 
 # OpenStack Networking VXLAN (tunnel/overlay) bridge
-#
-# Only the COMPUTE and NETWORK nodes must have an IP address
-# on this bridge. When used by infrastructure nodes, the
-# IP addresses are assigned to containers which use this
-# bridge.
-#
 auto br-vxlan
-iface br-vxlan inet manual
+iface br-vxlan inet static
     bridge_stp off
     bridge_waitport 0
     bridge_fd 0
     bridge_ports {{ interface }}.30
+    address {{host_info[inventory_hostname].VXLAN_IP}}
+    netmask 255.255.252.0
 
 # OpenStack Networking VLAN bridge
 auto br-vlan
@@ -60,7 +53,7 @@ iface br-vlan inet static
     gateway 192.168.122.1
     dns-nameserver 8.8.8.8 8.8.4.4
 
-# compute1 Storage bridge
+# OpenStack Storage bridge
 auto br-storage
 iface br-storage inet static
     bridge_stp off
index fbaa8b8..e9f8649 100644 (file)
@@ -1,6 +1,3 @@
-# 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
@@ -35,18 +32,14 @@ iface br-mgmt inet static
     netmask 255.255.252.0
 
 # OpenStack Networking VXLAN (tunnel/overlay) bridge
-#
-# Only the COMPUTE and NETWORK nodes must have an IP address
-# on this bridge. When used by infrastructure nodes, the
-# IP addresses are assigned to containers which use this
-# bridge.
-#
 auto br-vxlan
-iface br-vxlan inet manual
+iface br-vxlan inet static
     bridge_stp off
     bridge_waitport 0
     bridge_fd 0
     bridge_ports {{ interface }}.30
+    address {{ host_info[inventory_hostname].VXLAN_IP }}
+    netmask 255.255.252.0
 
 # OpenStack Networking VLAN bridge
 auto br-vlan
@@ -60,7 +53,7 @@ iface br-vlan inet static
     gateway 192.168.122.1
     dns-nameserver 8.8.8.8 8.8.4.4
 
-# compute1 Storage bridge
+# OpenStack Storage bridge
 auto br-storage
 iface br-storage inet static
     bridge_stp off