From dcb95e689f2f61a61ef50822f8cb0e9543c8005d Mon Sep 17 00:00:00 2001 From: Tiago Gomes Date: Tue, 21 Apr 2015 10:09:22 +0000 Subject: Enable Ironic on the three-node OpenStack system Also avoid running it on the compute machine on a two-node OpenStack system. Change-Id: I091bb4641291aaf1d699be2bd433cbda1f87d743 --- clusters/openstack-one-node.morph | 1 + clusters/openstack-three-node-installer.morph | 4 +++ clusters/openstack-two-node-installer.morph | 3 ++ openstack-ironic.configure | 48 ++++++++++++++++++--------- 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 ########################################################################## -- cgit v1.2.1