summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2015-04-10 17:13:54 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2015-04-13 09:41:33 +0000
commitbfe8db7a61be82da2ccd8de21588e1dabc5a0e9d (patch)
treecfe7c6ae6e313c41618a930abef925db7add9e44
parent7559282bd18274c4235572bdd51a7dde5fee1401 (diff)
downloaddefinitions-bfe8db7a61be82da2ccd8de21588e1dabc5a0e9d.tar.gz
openstack-network: Add possibility of specifying external interface
-rw-r--r--openstack-network.configure12
-rw-r--r--openstack/usr/share/openstack/network.yml14
2 files changed, 24 insertions, 2 deletions
diff --git a/openstack-network.configure b/openstack-network.configure
index 7f2a08cc..f776f058 100644
--- a/openstack-network.configure
+++ b/openstack-network.configure
@@ -24,3 +24,15 @@ ln -sf "/usr/lib/systemd/system/openvswitch-setup.service" \
ln -sf "/usr/lib/systemd/system/openstack-network-setup.service" \
"$ROOT/etc/systemd/system/multi-user.target.wants/openstack-network-setup.service"
+
+python <<'EOF' >"$ROOT/etc/openstack/network.conf"
+import os, sys, yaml
+
+network_configuration = {}
+
+optional_keys = ('EXTERNAL_INTERFACE',)
+
+network_configuration.update((k, os.environ[k]) for k in optional_keys if k in os.environ)
+
+yaml.dump(network_configuration, sys.stdout, default_flow_style=False)
+EOF
diff --git a/openstack/usr/share/openstack/network.yml b/openstack/usr/share/openstack/network.yml
index 4179145b..955a617b 100644
--- a/openstack/usr/share/openstack/network.yml
+++ b/openstack/usr/share/openstack/network.yml
@@ -1,5 +1,7 @@
---
- hosts: localhost
+ vars_files:
+ - /etc/openstack/network.conf
tasks:
# Create the bridges to use the External network mapped
# This configuration is for 1 node and it was taken from:
@@ -13,14 +15,22 @@
# Abort if there number of interfaces != 1
- fail:
msg: More than one, or none network interfaces found.
- when: number_interfaces.stdout != "1"
+ when: EXTERNAL_INTERFACE is not defined and number_interfaces.stdout != "1"
- shell: ls /sys/class/net | grep ^e.*
register: interface_name
+ when: EXTERNAL_INTERFACE is not defined
- set_fact:
ETH_INTERFACE: "{{ interface_name.stdout }}"
- ETH_MAC_ADDRESS: "{{ hostvars['localhost']['ansible_' + interface_name.stdout]['macaddress'] }}"
+ when: EXTERNAL_INTERFACE is not defined
+
+ - set_fact:
+ ETH_INTERFACE: "{{ EXTERNAL_INTERFACE }}"
+ when: EXTERNAL_INTERFACE is defined
+
+ - set_fact:
+ ETH_MAC_ADDRESS: "{{ hostvars['localhost']['ansible_' + ETH_INTERFACE]['macaddress'] }}"
- name: Create the /run/systemd/network
file: