summaryrefslogtreecommitdiff
path: root/openstack-keystone.configure
diff options
context:
space:
mode:
Diffstat (limited to 'openstack-keystone.configure')
-rw-r--r--openstack-keystone.configure80
1 files changed, 52 insertions, 28 deletions
diff --git a/openstack-keystone.configure b/openstack-keystone.configure
index d2d1171e..c8a7e9ff 100644
--- a/openstack-keystone.configure
+++ b/openstack-keystone.configure
@@ -20,37 +20,61 @@ set -e
ROOT="$1"
##########################################################################
-# Substitutions in configuration files
+
+ln -s "/etc/systemd/system/openstack-keystone-setup.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-keystone-setup.service"
+
+##########################################################################
+# Check variables
##########################################################################
-cat <<EOF > "$ROOT"/etc/openstack-keystone-setup.sed
-s/##KEYSTONE_TEMPORARY_ADMIN_TOKEN##/$KEYSTONE_TEMPORARY_ADMIN_TOKEN/g
-s/##KEYSTONE_TEMPORARY_ADMIN_PASSWORD##/$KEYSTONE_TEMPORARY_ADMIN_PASSWORD/g
-s/##KEYSTONE_PUBLIC_URL##/$KEYSTONE_PUBLIC_URL/g
-s/##KEYSTONE_INTERNAL_URL##/$KEYSTONE_INTERNAL_URL/g
-s/##KEYSTONE_ADMIN_URL##/$KEYSTONE_ADMIN_URL/g
-s/##OPENSTACK_AUTH_HOST##/$OPENSTACK_AUTH_HOST/g
-s/##OPENSTACK_AUTH_PORT##/$OPENSTACK_AUTH_PORT/g
-s/##IDENTITY_URI##/$IDENTITY_URI/g
-s/##KEYSTONE_DB_USER##/$KEYSTONE_DB_USER/g
-s/##KEYSTONE_DB_PASSWORD##/$KEYSTONE_DB_PASSWORD/g
-EOF
+if [ -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" -a \
+ -z "$KEYSTONE_ADMIN_PASSWORD" -a \
+ -z "$KEYSTONE_DB_USER" -a \
+ -z "$KEYSTONE_DB_PASSWORD" -a \
+ -z "$RABBITMQ_HOST" -a \
+ -z "$RABBITMQ_PORT" -a \
+ -z "$RABBITMQ_USER" -a \
+ -z "$RABBITMQ_PASSWORD" -a \
+ -z "$CONTROLLER_HOST_ADDRESS" ]; then
+ # No Keystone options defined, do nothing.
+ exit 0
+fi
-sed -f "$ROOT"/etc/openstack-keystone-setup.sed -i \
- "$ROOT"/etc/keystone/keystone.conf \
- "$ROOT"/etc/glance/glance-api.conf \
- "$ROOT"/etc/glance/glance-registry.conf \
- "$ROOT"/etc/nova/nova.conf \
- "$ROOT"/etc/cinder/cinder.conf \
- "$ROOT"/etc/neutron/neutron.conf \
- "$ROOT"/etc/neutron/metadata_agent.ini \
- "$ROOT"/usr/share/openstack/openstack-keystone-setup \
- "$ROOT"/usr/share/openstack/openstack-glance-setup \
- "$ROOT"/usr/share/openstack/openstack-nova-setup \
- "$ROOT"/usr/share/openstack/openstack-neutron-setup \
- "$ROOT"/usr/share/openstack/openstack-cinder-setup
+if [ -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" -o \
+ -z "$KEYSTONE_ADMIN_PASSWORD" -o \
+ -z "$KEYSTONE_DB_USER" -o \
+ -z "$KEYSTONE_DB_PASSWORD" -o \
+ -z "$RABBITMQ_HOST" -o \
+ -z "$RABBITMQ_PORT" -o \
+ -z "$RABBITMQ_USER" -o \
+ -z "$RABBITMQ_PASSWORD" -o \
+ -z "$CONTROLLER_HOST_ADDRESS" ]; then
+ echo Some options required for Keystone were defined, but not all.
+ exit 1
+fi
##########################################################################
+# Generate config variable shell snippet
+##########################################################################
-ln -s "/etc/systemd/system/openstack-keystone-setup.service" \
- "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-keystone-setup.service"
+OPENSTACK_DATA="$ROOT/etc/openstack"
+mkdir -p "$OPENSTACK_DATA"
+
+python <<'EOF' >"$OPENSTACK_DATA/keystone.conf"
+import os, sys, yaml
+
+keystone_configuration={
+ 'KEYSTONE_TEMPORARY_ADMIN_TOKEN': os.environ['KEYSTONE_TEMPORARY_ADMIN_TOKEN'],
+ 'KEYSTONE_ADMIN_PASSWORD': os.environ['KEYSTONE_ADMIN_PASSWORD'],
+ 'KEYSTONE_DB_USER': os.environ['KEYSTONE_DB_USER'],
+ 'KEYSTONE_DB_PASSWORD': os.environ['KEYSTONE_DB_PASSWORD'],
+ 'CONTROLLER_HOST_ADDRESS': os.environ['CONTROLLER_HOST_ADDRESS'],
+ 'RABBITMQ_HOST': os.environ['RABBITMQ_HOST'],
+ 'RABBITMQ_PORT': os.environ['RABBITMQ_PORT'],
+ 'RABBITMQ_USER': os.environ['RABBITMQ_USER'],
+ 'RABBITMQ_PASSWORD': os.environ['RABBITMQ_PASSWORD'],
+}
+
+yaml.dump(keystone_configuration, sys.stdout, default_flow_style=False)
+EOF