summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/setup-openvswitch
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/roles/setup-openvswitch')
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml5
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml4
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml20
-rwxr-xr-xdeploy/adapters/ansible/roles/setup-openvswitch/templates/controller.j288
4 files changed, 114 insertions, 3 deletions
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml b/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml
index fb7814b7..58a1710c 100644
--- a/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml
@@ -6,6 +6,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
############################################################################
---
+- name: restart network service
+ service:
+ name: networking
+ state: restarted
+
- name: restart neutron-openvswitch-agent
service:
name: neutron-openvswitch-agent
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
index 43c6689f..670eea75 100644
--- a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml
@@ -50,7 +50,7 @@
when:
- compute in item["role"]
-- name: start neutron-openvswitch-agent
+- name: restart neutron-openvswitch-agent
service:
name: neutron-openvswitch-agent
- state: started
+ state: restarted
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml
index 3637d1db..bb96b736 100644
--- a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml
@@ -50,7 +50,25 @@
when:
- controller in item["role"]
+- name: configure interfaces ubuntu
+ template:
+ src: controller.j2
+ dest: /etc/network/interfaces
+ notify:
+ - restart network service
+
- name: start neutron-openvswitch-agent
service:
name: neutron-openvswitch-agent
- state: started
+ state: restarted
+
+- name: update keepalived
+ replace:
+ dest: /etc/keepalived/keepalived.conf
+ regexp: 'br-external'
+ replace: 'br-provider'
+
+- name: restart keepalived
+ service:
+ name: keepalived
+ state: restarted
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/templates/controller.j2 b/deploy/adapters/ansible/roles/setup-openvswitch/templates/controller.j2
new file mode 100755
index 00000000..f7b9756b
--- /dev/null
+++ b/deploy/adapters/ansible/roles/setup-openvswitch/templates/controller.j2
@@ -0,0 +1,88 @@
+# 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 manual
+
+# external interface
+{% set intf_external = contr_sys_mappings["external"]["interface"] %}
+{% if contr_sys_mappings["external"]["vlan_tag"] | int %}
+{% set intf_external = intf_external + '.' + contr_sys_mappings["external"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_external }}
+iface {{ intf_external }} inet manual
+{% if contr_sys_mappings["external"]["vlan_tag"] | int %}
+ vlan-raw-device {{ intf_external }}
+{% endif %}
+
+# tenant interface
+{% set intf_tenant = contr_sys_mappings["tenant"]["interface"] %}
+{% if contr_sys_mappings["tenant"]["vlan_tag"] | int %}
+{% set intf_tenant = intf_tenant + '.' + contr_sys_mappings["tenant"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_tenant }}
+iface {{ intf_tenant }} inet static
+{% if contr_sys_mappings["tenant"]["vlan_tag"] | int %}
+ vlan-raw-device {{ intf_tenant }}
+{% endif %}
+
+# storage interface
+{% set intf_storage = contr_sys_mappings["storage"]["interface"] %}
+{% if contr_sys_mappings["storage"]["vlan_tag"] | int %}
+{% set intf_storage = intf_storage + '.' + contr_sys_mappings["storage"]["vlan_tag"]|string %}
+{% endif %}
+auto {{ intf_storage }}
+iface {{ intf_storage }} inet manual
+{% if contr_sys_mappings["storage"]["vlan_tag"] | int %}
+ vlan-raw-device {{ intf_storage }}
+{% endif %}
+
+# Container/Host management bridge
+auto br-mgmt
+iface br-mgmt inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports eth0
+ address {{ ip_settings[inventory_hostname]["mgmt"]["ip"] }}
+ netmask 255.255.255.0
+
+# OpenStack Networking VLAN bridge
+auto br-provider
+iface br-provider inet static
+ address {{ ip_settings[inventory_hostname]["external"]["ip"] }}
+ netmask 255.255.255.0
+ gateway {{ ip_settings[inventory_hostname]["external"]["gw"] }}
+ pre-up ifconfig br-external down || true
+ pre-up brctl delbr br-external || true
+
+# 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-tenant
+iface br-tenant inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{ intf_tenant }}
+ address {{ ip_settings[inventory_hostname]["tenant"]["ip"] }}
+ netmask 255.255.255.0
+
+# Storage bridge
+auto br-storage
+iface br-storage inet static
+ bridge_stp off
+ bridge_waitport 0
+ bridge_fd 0
+ bridge_ports {{ intf_storage }}
+ address {{ ip_settings[inventory_hostname]["storage"]["ip"] }}
+ netmask 255.255.255.0