summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clusters/openstack-one-node.morph1
-rw-r--r--clusters/openstack-three-node-installer.morph4
-rw-r--r--clusters/openstack-two-node-installer.morph3
-rw-r--r--openstack-ironic.configure48
4 files changed, 40 insertions, 16 deletions
diff --git a/clusters/openstack-one-node.morph b/clusters/openstack-one-node.morph
index 673c5a42..d57b1bc6 100644
--- a/clusters/openstack-one-node.morph
+++ b/clusters/openstack-one-node.morph
@@ -85,6 +85,7 @@ systems:
NEUTRON_DB_PASSWORD: veryinsecure
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ IRONIC_ENABLE_SERVICE: True
IRONIC_SERVICE_USER: ironic
IRONIC_SERVICE_PASSWORD: veryinsecure
IRONIC_DB_USER: ironicDB
diff --git a/clusters/openstack-three-node-installer.morph b/clusters/openstack-three-node-installer.morph
index b496d8ed..144033cb 100644
--- a/clusters/openstack-three-node-installer.morph
+++ b/clusters/openstack-three-node-installer.morph
@@ -126,6 +126,7 @@ systems:
NEUTRON_DB_PASSWORD: veryinsecure
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ IRONIC_ENABLE_SERVICE: False
IRONIC_SERVICE_USER: ironic
IRONIC_SERVICE_PASSWORD: veryinsecure
IRONIC_DB_USER: ironicDB
@@ -138,6 +139,7 @@ systems:
HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt
HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt
HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt
+
EXTERNAL_INTERFACE: enp3s0
NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0
subsystems:
@@ -166,6 +168,8 @@ systems:
NEUTRON_ENABLE_CONTROLLER: True
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ IRONIC_ENABLE_SERVICE: True
+
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2
HOSTS_SELF: 10.0.0.2 threenode-controller
EXTERNAL_INTERFACE: enp2s0
diff --git a/clusters/openstack-two-node-installer.morph b/clusters/openstack-two-node-installer.morph
index 00d23ecd..0541e784 100644
--- a/clusters/openstack-two-node-installer.morph
+++ b/clusters/openstack-two-node-installer.morph
@@ -125,6 +125,7 @@ systems:
NEUTRON_DB_PASSWORD: veryinsecure
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ IRONIC_ENABLE_SERVICE: True
IRONIC_SERVICE_USER: ironic
IRONIC_SERVICE_PASSWORD: veryinsecure
IRONIC_DB_USER: ironicDB
@@ -175,6 +176,8 @@ systems:
NEUTRON_ENABLE_CONTROLLER: False
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ IRONIC_ENABLE_SERVICE: False
+
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
HOSTS_SELF: 10.0.0.3 twonode-compute
EXTERNAL_INTERFACE: eno1
diff --git a/openstack-ironic.configure b/openstack-ironic.configure
index 50d8e5c6..7c9c0ffd 100644
--- a/openstack-ironic.configure
+++ b/openstack-ironic.configure
@@ -19,28 +19,38 @@ set -e
ROOT="$1"
-##########################################################################
+enable(){
+ ln -sf "/usr/lib/systemd/system/$1.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/$1.service"
+}
+
+unnaceptable(){
+ eval echo Unexpected value \$$1 for $1 >&2
+ exit 1
+}
-ln -sf "/usr/lib/systemd/system/openstack-ironic-setup.service" \
- "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-ironic-setup.service"
+check_bool(){
+ case "$(eval echo \"\$$1\")" in
+ True|'')
+ eval "$1=true"
+ ;;
+ False)
+ eval "$1=false"
+ ;;
+ *)
+ unnaceptable "$1"
+ ;;
+ esac
+}
##########################################################################
# Check variables
##########################################################################
-if [ -z "$IRONIC_SERVICE_USER" -a \
- -z "$IRONIC_SERVICE_PASSWORD" -a \
- -z "$IRONIC_DB_USER" -a \
- -z "$IRONIC_DB_PASSWORD" -a \
- -z "$RABBITMQ_HOST" -a \
- -z "$RABBITMQ_USER" -a \
- -z "$RABBITMQ_PASSWORD" -a \
- -z "$RABBITMQ_PORT" -a \
- -z "$CONTROLLER_HOST_ADDRESS" -a \
- -z "$MANAGEMENT_INTERFACE_IP_ADDRESS" -a \
- -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" ]; then
- # No Ironic options defined, do nothing.
- exit 0
+check_bool IRONIC_ENABLE_SERVICE
+
+if ! "$IRONIC_ENABLE_SERVICE"; then
+ exit 0
fi
if [ -z "$IRONIC_SERVICE_USER" -o \
@@ -58,6 +68,12 @@ if [ -z "$IRONIC_SERVICE_USER" -o \
exit 1
fi
+######################################
+# Enable relevant openstack services #
+######################################
+
+enable openstack-ironic-setup
+
##########################################################################
# Generate configuration file
##########################################################################