diff options
Diffstat (limited to 'docker/centos/binary')
81 files changed, 80 insertions, 3151 deletions
diff --git a/docker/centos/binary/barbican/start.sh b/docker/centos/binary/barbican/start.sh index 673aa4339..fbb47be02 100755..120000 --- a/docker/centos/binary/barbican/start.sh +++ b/docker/centos/binary/barbican/start.sh @@ -1,81 +1 @@ -#!/bin/bash - -set -e - -: ${BARBICAN_DB_USER:=barbican} -: ${BARBICAN_DB_NAME:=barbican} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${BARBICAN_KEYSTONE_USER:=barbican} -: ${ADMIN_TENANT_NAME:=admin} - -if ! [ "$BARBICAN_DB_PASSWORD" ]; then - BARBICAN_DB_PASSWORD=$(openssl rand -hex 15) - export BARBICAN_DB_PASSWORD -fi - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_PORT BARBICAN_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${BARBICAN_DB_NAME}; -GRANT ALL PRIVILEGES ON barbican.* TO - '${BARBICAN_DB_USER}'@'%' IDENTIFIED BY '${BARBICAN_DB_PASSWORD}' -EOF - -# config file setup -crudini --set /etc/barbican/barbican-api.conf \ - DEFAULT \ - sql_connection \ - "mysql://${BARBICAN_DB_USER}:${BARBICAN_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${BARBICAN_DB_NAME}" -crudini --set /etc/barbican/barbican-api.conf \ - DEFAULT \ - log_dir \ - "/var/log/barbican/" -crudini --set /etc/barbican/barbican-api.conf \ - DEFAULT \ - log_file \ - "/var/log/barbican/barbican.log" -crudini --set /etc/barbican/barbican-api-paste.ini \ - pipeline:barbican_api \ - pipeline \ - "keystone_authtoken context apiapp" -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - auth_host \ - ${KEYSTONE_ADMIN_SERVICE_HOST} -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - auth_port \ - ${KEYSTONE_ADMIN_SERVICE_PORT} -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - auth_protocol \ - ${KEYSTONE_AUTH_PROTOCOL} -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - admin_tenant_name \ - ${ADMIN_TENANT_NAME} -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - admin_user \ - ${BARBICAN_KEYSTONE_USER} -crudini --set /etc/barbican/barbican-api-paste.ini \ - filter:keystone_authtoken \ - admin_password \ - ${BARBICAN_KEYSTONE_USER} - -# create the required keystone entities for barbican -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -keystone user-get ${BARBICAN_KEYSTONE_USER} > /dev/null 2>&1 || /bin/keystone user-create --name ${BARBICAN_KEYSTONE_USER} --pass ${BARBICAN_ADMIN_PASSWORD} - -keystone role-get observer > /dev/null 2>&1 || /bin/keystone role-create --name observer -keystone role-get creator > /dev/null 2>&1 || /bin/keystone role-create --name creator - -keystone user-get ${BARBICAN_KEYSTONE_USER} > /dev/null 2>&1 || /bin/keystone user-role-add --user ${BARBICAN_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -# launch Barbican using uwsgi -exec uwsgi --master --emperor /etc/barbican/vassals +../../../common/barbican/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/base/kolla-common.sh b/docker/centos/binary/base/kolla-common.sh index 380efbc3d..c265c62f7 120000 --- a/docker/centos/binary/base/kolla-common.sh +++ b/docker/centos/binary/base/kolla-common.sh @@ -1 +1 @@ -../../../common/kolla-common.sh
\ No newline at end of file +../../../common/base/kolla-common.sh
\ No newline at end of file diff --git a/docker/centos/binary/base/service_hosts.sh b/docker/centos/binary/base/service_hosts.sh index 777b7334d..06e045440 120000 --- a/docker/centos/binary/base/service_hosts.sh +++ b/docker/centos/binary/base/service_hosts.sh @@ -1 +1 @@ -../../../common/service_hosts.sh
\ No newline at end of file +../../../common/base/service_hosts.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh b/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh index 7470ae608..ed3ac528d 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh @@ -1,10 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - - -exec /usr/bin/ceilometer-alarm-evaluator & -exec /usr/bin/ceilometer-alarm-notifier +../../../../common/ceilometer/ceilometer-alarm/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-api/start.sh b/docker/centos/binary/ceilometer/ceilometer-api/start.sh index f081c9f84..7acfa2cba 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-api/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-api/start.sh @@ -1,51 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - -check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \ - CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \ - CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \ - CEILOMETER_API_SERVICE_HOST PUBLIC_IP - -fail_unless_os_service_running keystone -fail_unless_db - -#TODO(pkilambi): Add mongodb support - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${CEILOMETER_DB_NAME} DEFAULT CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON ${CEILOMETER_DB_NAME}.* TO - '${CEILOMETER_DB_USER}'@'%' IDENTIFIED BY '${CEILOMETER_DB_PASSWORD}' - -EOF - - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - - -crux user-create -n ${CEILOMETER_KEYSTONE_USER} \ - -p ${CEILOMETER_ADMIN_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux service-create -n ${CEILOMETER_KEYSTONE_USER} -t metering \ - -d "Ceilometer Telemetry Service" - -crux endpoint-create i--remove-all -n ${CEILOMETER_KEYSTONE_USER} -t metering \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8777" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${CEILOMETER_API_SERVICE_HOST}:8777" - -cfg=/etc/ceilometer/ceilometer.conf -crudini --set $cfg \ - DEFAULT connection - "mysql://${CEILOMETER_DB_USER}:${CEILOMETER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CEILOMETER_DB_NAME}" - - -exec /usr/bin/ceilometer-api +../../../../common/ceilometer/ceilometer-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-base/config-ceilometer.sh b/docker/centos/binary/ceilometer/ceilometer-base/config-ceilometer.sh index a2316dcd1..63215435d 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-base/config-ceilometer.sh +++ b/docker/centos/binary/ceilometer/ceilometer-base/config-ceilometer.sh @@ -1,71 +1 @@ -#!/bin/bash - -set -e -. /opt/kolla/kolla-common.sh - -: ${CEILOMETER_DB_USER:=ceilometer} -: ${CEILOMETER_DB_NAME:=ceilometer} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${CEILOMETER_KEYSTONE_USER:=admin} -: ${CEILOMETER_ADMIN_PASSWORD:=kolla} -: ${ADMIN_TENANT_NAME:=admin} -: ${METERING_SECRET:=ceilometer} -: ${RABBIT_PASSWORD:=guest} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_PUBLIC_SERVICE_HOST \ -dump_vars - -cat > /openrc <<EOF -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" -EOF - - -cfg=/etc/ceilometer/ceilometer.conf - -crudini --set $cfg \ - DEFAULT rpc_backend rabbit -crudini --set $cfg \ - DEFAULT rabbit_host ${RABBITMQ_SERVICE_HOST} -crudini --set $cfg \ - DEFAULT rabbit_password ${RABBIT_PASSWORD} - -crudini --set $cfg \ - keystone_authtoken \ - auth_uri \ - "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" -crudini --set $cfg \ - keystone_authtoken \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg \ - keystone_authtoken \ - admin_user \ - "${CEILOMETER_KEYSTONE_USER}" -crudini --set $cfg \ - keystone_authtoken \ - admin_password \ - ${CEILOMETER_ADMIN_PASSWORD} - -crudini --set $cfg \ - service_credentials \ - os_auth_url \ - ${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/ -crudini --set $cfg \ - service_credentials \ - os_username \ - ceilometer -crudini --set $cfg \ - service_credentials \ - os_tenant_name \ - service -crudini --set $cfg \ - service_credentials \ - os_password \ - ${CEILOMETER_ADMIN_PASSWORD} - -crudini --set $cfg \ - publisher - metering_secret - ${METERING_SECRET} +../../../../common/ceilometer/ceilometer-base/config-ceilometer.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-central/start.sh b/docker/centos/binary/ceilometer/ceilometer-central/start.sh index 76f9a1fc2..8df383cd1 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-central/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-central/start.sh @@ -1,14 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -exec /usr/bin/ceilometer-agent-central +../../../../common/ceilometer/ceilometer-central/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-collector/start.sh b/docker/centos/binary/ceilometer/ceilometer-collector/start.sh index 1ed4c9e7d..bea2eb09c 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-collector/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-collector/start.sh @@ -1,9 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - - -exec /usr/bin/ceilometer-collector +../../../../common/ceilometer/ceilometer-collector/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-compute/start.sh b/docker/centos/binary/ceilometer/ceilometer-compute/start.sh index f4fc30bae..1118b9552 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-compute/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-compute/start.sh @@ -1,25 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - - -check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST RABBIT_PASSWORD - -fail_unless_os_service_running keystone - -# Nova conf settings -crudini --set /etc/nova/nova.conf DEFAULT instance_usage_audit True -crudini --set /etc/nova/nova.conf DEFAULT instance_usage_audit_period hour -crudini --set /etc/nova/nova.conf DEFAULT notify_on_state_change vm_and_task_state -crudini --set /etc/nova/nova.conf DEFAULT notification_driver nova.openstack.common.notifier.rpc_notifier -crudini --set /etc/nova/nova.conf DEFAULT notification_driver ceilometer.compute.nova_notifier - -#ceilometer settings -cfg=/etc/ceilometer/ceilometer.conf -crudini --set $cfg publisher_rpc metering_secret ${KEYSTONE_ADMIN_TOKEN} -crudini --set $cfg rabbit_host ${RABBITMQ_SERVICE_HOST} -crudini --set $cfg rabbit_password ${RABBIT_PASSWORD} - - -exec /usr/bin/ceilometer-agent-compute +../../../../common/ceilometer/ceilometer-compute/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-notification/start.sh b/docker/centos/binary/ceilometer/ceilometer-notification/start.sh index 939734549..8e6d4e337 100644..120000 --- a/docker/centos/binary/ceilometer/ceilometer-notification/start.sh +++ b/docker/centos/binary/ceilometer/ceilometer-notification/start.sh @@ -1,9 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - - -exec /usr/bin/ceilometer-agent-notification +../../../../common/ceilometer/ceilometer-notification/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-api/check.sh b/docker/centos/binary/cinder-app/cinder-api/check.sh index 57b88f566..829110b45 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-api/check.sh +++ b/docker/centos/binary/cinder-app/cinder-api/check.sh @@ -1,16 +1 @@ -#!/bin/sh - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! cinder list > /dev/null; then - echo "ERROR: cinder list failed" >&2 - RES=1 - fi -fi - -exit $RES +../../../../common/cinder-app/cinder-api/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-api/start.sh b/docker/centos/binary/cinder-app/cinder-api/start.sh index 28293ac6c..33182c78c 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-api/start.sh +++ b/docker/centos/binary/cinder-app/cinder-api/start.sh @@ -1,73 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - ADMIN_TENANT_NAME PUBLIC_IP CINDER_API_SERVICE_HOST \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ - CINDER_KEYSTONE_USER CINDER_KEYSTONE_PASSWORD \ - CINDER_API_LOG_FILE CINDER_API_SERVICE_LISTEN \ - CINDER_API_SERVICE_PORT CINDER_API_SERVICE_LISTEN - -fail_unless_os_service_running keystone - -cfg=/etc/cinder/cinder.conf - -# Set the auth credentials -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -# Create Keystone User -crux user-create --update \ - -n "${CINDER_KEYSTONE_USER}" \ - -p "${CINDER_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -# Configure Keystone -crux endpoint-create --remove-all \ - -n cinder \ - -t volume \ - -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ - -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ - -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" - -crux endpoint-create --remove-all \ - -n cinderv2 \ - -t volumev2 \ - -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ - -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ - -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" - -# Logging -crudini --set $cfg \ - DEFAULT \ - log_file \ - "${CINDER_API_LOG_FILE}" - -# API Configuration -crudini --set $cfg \ - DEFAULT \ - osapi_volume_listen \ - "${CINDER_API_SERVICE_LISTEN}" - -crudini --set $cfg \ - DEFAULT \ - osapi_volume_listen_port \ - "${CINDER_API_SERVICE_PORT}" - -crudini --set $cfg \ - DEFAULT \ - enable_v1_api \ - "true" - -crudini --set $cfg \ - DEFAULT \ - enable_v2_api \ - "true" - -echo "Starting cinder-api" -exec /usr/bin/cinder-api --config-file $cfg +../../../../common/cinder-app/cinder-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-backup/start.sh b/docker/centos/binary/cinder-app/cinder-backup/start.sh index 5dff79b35..c21a17f09 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-backup/start.sh +++ b/docker/centos/binary/cinder-app/cinder-backup/start.sh @@ -1,36 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh - -check_required_vars CINDER_BACKUP_DRIVER CINDER_BACKUP_MANAGER \ - CINDER_BACKUP_API_CLASS CINDER_BACKUP_NAME_TEMPLATE - -cfg=/etc/cinder/cinder.conf - -# volume backup configuration -crudini --set $cfg \ - DEFAULT \ - backup_driver \ - "${CINDER_BACKUP_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - backup_topic \ - "cinder-backup" -crudini --set $cfg \ - DEFAULT \ - backup_manager \ - "${CINDER_BACKUP_MANAGER}" -crudini --set $cfg \ - DEFAULT \ - backup_api_class \ - "${CINDER_BACKUP_API_CLASS}" -crudini --set $cfg \ - DEFAULT \ - backup_name_template \ - "${CINDER_BACKUP_NAME_TEMPLATE}" - -echo "Starting cinder-backup" -exec /usr/bin/cinder-backup --config-file $cfg +../../../../common/cinder-app/cinder-backup/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh b/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh index f82cb5510..22722c185 100644..120000 --- a/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh +++ b/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh @@ -1,132 +1 @@ -#!/bin/sh - -set -e - -. /opt/kolla/kolla-common.sh - -check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ - GLANCE_API_SERVICE_HOST MARIADB_SERVICE_HOST \ - RABBITMQ_SERVICE_HOST RABBITMQ_SERVICE_PORT \ - RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \ - GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \ - CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \ - PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_LOG_DIR - -dump_vars - -cat > /openrc <<EOF -export OS_AUTH_URL="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -export OS_USERNAME="${CINDER_KEYSTONE_USER}" -export OS_PASSWORD="${CINDER_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -cfg=/etc/cinder/cinder.conf - -# Logging -crudini --set $cfg \ - DEFAULT \ - log_dir \ - "${CINDER_LOG_DIR}" -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" - -# backend -crudini --set $cfg \ - DEFAULT \ - rpc_backend \ - "cinder.openstack.common.rpc.impl_kombu" - -# rabbit -crudini --set $cfg \ - DEFAULT \ - rabbit_host \ - "${RABBITMQ_SERVICE_HOST}" -crudini --set $cfg \ - DEFAULT \ - rabbit_port \ - "${RABBITMQ_SERVICE_PORT}" -crudini --set $cfg \ - DEFAULT \ - rabbit_hosts \ - "${RABBITMQ_SERVICE_HOST}:${RABBITMQ_SERVICE_PORT}" -crudini --set $cfg \ - DEFAULT \ - rabbit_userid \ - "${RABBIT_USERID}" -crudini --set $cfg \ - DEFAULT \ - rabbit_password \ - "${RABBIT_PASSWORD}" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_virtual_host \ - "/" -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - rabbit_ha_queues \ - "False" - -# control_exchange -crudini --set /etc/cinder/cinder.conf \ - DEFAULT \ - control_exchange \ - "openstack" - -# glance -crudini --set $cfg \ - DEFAULT \ - glance_host \ - "${GLANCE_API_SERVICE_HOST}" -crudini --set $cfg \ - DEFAULT \ - glance_port \ - "${GLANCE_API_SERVICE_PORT}" - -# database -crudini --set $cfg \ - database \ - connection \ - "mysql://${CINDER_DB_USER}:${CINDER_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${CINDER_DB_NAME}" - -# keystone -crudini --set $cfg \ - DEFAULT \ - auth_strategy \ - "keystone" -crudini --del $cfg \ - keystone_authtoken \ - auth_protocol -crudini --del $cfg \ - keystone_authtoken \ - auth_host -crudini --del $cfg \ - keystone_authtoken \ - auth_port -crudini --set $cfg \ - keystone_authtoken \ - auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set $cfg \ - keystone_authtoken \ - identity_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}" -crudini --set $cfg \ - keystone_authtoken \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg \ - keystone_authtoken \ - admin_user \ - "${CINDER_KEYSTONE_USER}" -crudini --set $cfg \ - keystone_authtoken \ - admin_password \ - "${CINDER_KEYSTONE_PASSWORD}" +../../../../common/cinder-app/cinder-base/config-cinder.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-scheduler/start.sh b/docker/centos/binary/cinder-app/cinder-scheduler/start.sh index 93efeb406..a91c95ebd 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-scheduler/start.sh +++ b/docker/centos/binary/cinder-app/cinder-scheduler/start.sh @@ -1,32 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh - -fail_unless_db - -check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD \ - CINDER_DB_NAME CINDER_DB_USER CINDER_DB_PASSWORD \ - CINDER_SCHEDULER_LOG_FILE INIT_CINDER_DB - -cfg=/etc/cinder/cinder.conf - -if [ "${INIT_CINDER_DB}" == "true" ]; then - mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME}; -GRANT ALL PRIVILEGES ON ${CINDER_DB_NAME}.* TO -'${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}' -EOF - - su -s /bin/sh -c "cinder-manage db sync" cinder -fi - -crudini --set $cfg \ - DEFAULT \ - log_file \ - "${CINDER_SCHEDULER_LOG_FILE}" - -echo "Starting cinder-scheduler" -exec /usr/bin/cinder-scheduler --config-file $cfg +../../../../common/cinder-app/cinder-scheduler/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-volume/start.sh b/docker/centos/binary/cinder-app/cinder-volume/start.sh index db29e75de..f79df7c47 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-volume/start.sh +++ b/docker/centos/binary/cinder-app/cinder-volume/start.sh @@ -1,75 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh -. /opt/kolla/volume-group-create.sh - -check_required_vars CINDER_VOLUME_API_LISTEN ISCSI_HELPER ISCSI_IP_ADDRESS \ - CINDER_VOLUME_GROUP CINDER_LVM_LO_VOLUME_SIZE \ - CINDER_VOLUME_BACKEND_NAME CINDER_VOLUME_DRIVER \ - CINDER_ENABLED_BACKEND CINDER_VOLUME_LOG_FILE - -cfg=/etc/cinder/cinder.conf - -# Logging -crudini --set $cfg \ - DEFAULT \ - log_file \ - "${CINDER_VOLUME_LOG_FILE}" - -# IP address on which OpenStack Volume API listens -crudini --set $cfg \ - DEFAULT \ - osapi_volume_listen \ - "${CINDER_VOLUME_API_LISTEN}" - -# The IP address that the iSCSI daemon is listening on -crudini --set $cfg \ - DEFAULT \ - iscsi_ip_address \ - "${ISCSI_IP_ADDRESS}" - -# Set to false when using loopback devices (testing) -crudini --set $cfg \ - DEFAULT \ - secure_delete \ - "false" - -crudini --set $cfg \ - DEFAULT \ - enabled_backends \ - "${CINDER_ENABLED_BACKEND}" - -crudini --set $cfg \ - lvm57 \ - iscsi_helper \ - "${ISCSI_HELPER}" - -crudini --set $cfg \ - lvm57 \ - volume_group \ - "${CINDER_VOLUME_GROUP}" - -crudini --set $cfg \ - lvm57 \ - volume_driver \ - "${CINDER_VOLUME_DRIVER}" - -crudini --set $cfg \ - lvm57 \ - iscsi_ip_address \ - "${ISCSI_IP_ADDRESS}" - -crudini --set $cfg \ - lvm57 \ - volume_backend_name \ - "${CINDER_VOLUME_BACKEND_NAME}" - -sed -i 's/udev_sync = 1/udev_sync = 0/' /etc/lvm/lvm.conf -sed -i 's/udev_rules = 1/udev_rules = 0/' /etc/lvm/lvm.conf -sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf - -echo "Starting cinder-volume" -exec /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf +../../../../common/cinder-app/cinder-volume/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh b/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh index 908d987b0..eeeca7063 100755..120000 --- a/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh +++ b/docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh @@ -1,22 +1 @@ -#!/bin/bash - -# The script will create the cinder-volume volume group that will -# allow cinder to create volumes from a backing file. -# This is based off devstack. -set -e - -backing_file=/opt/data/cinder_volume - -check_required_vars CINDER_LVM_LO_VOLUME_SIZE CINDER_VOLUME_GROUP - -if ! vgs ${CINDER_VOLUME_GROUP}; then - [[ ! -f $backing_file ]] && truncate -s ${CINDER_LVM_LO_VOLUMES_SIZE} $backing_file - vg_dev=`losetup -f --show $backing_file` - if ! vgs ${CINDER_VOLUME_GROUP}; then - vgcreate ${CINDER_VOLUME_GROUP} $vg_dev - fi -fi - -# Remove iscsi targets -cinder-rtstool get-targets | xargs -rn 1 cinder-rtstool delete - +../../../../common/cinder-app/cinder-volume/volume-group-create.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-api/start.sh b/docker/centos/binary/designate/designate-api/start.sh index aae50ea8f..f96fe1a34 100755..120000 --- a/docker/centos/binary/designate/designate-api/start.sh +++ b/docker/centos/binary/designate/designate-api/start.sh @@ -1,37 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh - -CONF=/etc/designate/designate.conf - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - DESIGNATE_KEYSTONE_USER DESIGNATE_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \ - KEYSTONE_ADMIN_SERVICE_PORT - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -fail_unless_os_service_running keystone - -crux user-create \ - -n ${DESIGNATE_KEYSTONE_USER} \ - -p ${DESIGNATE_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create \ - --remove-all \ - -n ${DESIGNATE_KEYSTONE_USER} \ - -t dns \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${DESIGNATE_API_SERVICE_HOST}:${DESIGNATE_API_SERVICE_PORT}/v1" - -crudini --set $CONF service:api api_paste_config "/usr/share/designate/api-paste.ini" -crudini --set $CONF service:api api_port "${DESIGNATE_API_SERVICE_PORT}" - -exec /usr/bin/designate-api +../../../../common/designate/designate-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-backend-bind9/start.sh b/docker/centos/binary/designate/designate-backend-bind9/start.sh index 90d2de676..918411fa1 100755..120000 --- a/docker/centos/binary/designate/designate-backend-bind9/start.sh +++ b/docker/centos/binary/designate/designate-backend-bind9/start.sh @@ -1,60 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh - -check_required_vars DESIGNATE_MASTERNS DESIGNATE_SLAVENS DESIGNATE_BIND9_RNDC_KEY \ - DESIGNATE_ALLOW_RECURSION - -NAMEDCFG=/etc/named.conf - -# /var/named is coming from a VOLUME definition but at first boot it needs to -# be populated from the original container since else it would be missing some -# Bind9 core files. These files have been saved during the build phase. - -if [ ! -f /var/named/named.ca ]; then - cp -pr /opt/kolla/var-named/* /var/named/ -fi - -# When rndc adds a new domain, bind adds the call in an nzf file in this -# directory. -chmod 770 /var/named -chown root:named /var/named - -# Default Bind9 behavior is to enable recursion, disable if wanted. -if [ "${DESIGNATE_ALLOW_RECURSION}" == "false" ]; then - sed -i -r "s/(recursion) yes/\1 no/" $NAMEDCFG -fi - -sed -i -r "/listen-on port 53/d" $NAMEDCFG -sed -i -r "/listen-on-v6/d" $NAMEDCFG -sed -i -r "s,/\* Path to ISC DLV key \*/,allow-new-zones yes;," $NAMEDCFG -sed -i -r "/allow-query .+;/d" $NAMEDCFG - -if ! grep -q rndc-key /etc/named.conf; then - cat >> /etc/named.conf <<EOF -include "/etc/rndc.key"; -controls { - inet ${DESIGNATE_SLAVENS} allow { ${DESIGNATE_MASTERNS}; } keys { "rndc-key"; }; -}; -EOF -fi - -cat > /etc/rndc.key <<EOF -key "rndc-key" { - algorithm hmac-md5; - secret "${DESIGNATE_BIND9_RNDC_KEY}"; -}; -EOF -cat > /etc/rndc.conf <<EOF -options { - default-key "rndc-key"; - default-server 127.0.0.1; - default-port 953; -}; -EOF -cat /etc/rndc.key >> /etc/rndc.conf -chown named /etc/rndc.key - -# Launch and keep in the foreground. -exec /usr/sbin/named -u named -g +../../../../common/designate/designate-backend-bind9/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-base/config-designate.sh b/docker/centos/binary/designate/designate-base/config-designate.sh index 6edfd1bd2..77aa738de 100755..120000 --- a/docker/centos/binary/designate/designate-base/config-designate.sh +++ b/docker/centos/binary/designate/designate-base/config-designate.sh @@ -1,79 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -get_or_create_domain() { - local DOMAIN_NAME=$1 - - DOMAIN_ID=$(designate domain-create --name $DOMAIN_NAME | awk '/id/ { print $4; }') - # Searching domain if not created - if [ -z $DOMAIN_ID ]; then - DOMAIN_ID=$(designate domain-list | awk "/$DOMAIN_NAME/ { print \$2; }") - fi - # Fail if domain still don't exist - if [ -z $DOMAIN_ID ]; then - echo "Creating domain failed" 1>&2 - exit 1 - fi - - echo $DOMAIN_ID -} - -check_required_vars DESIGNATE_DB_PASSWORD DESIGNATE_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ - DESIGNATE_BIND9_RNDC_KEY DESIGNATE_BACKEND \ - KEYSTONE_PUBLIC_SERVICE_PORT DESIGNATE_KEYSTONE_USER \ - RABBIT_USERID RABBIT_PASSWORD DESIGNATE_DB_USER \ - DESIGNATE_DB_NAME KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ - DEBUG_LOGGING DESIGNATE_POOLMAN_POOLID - -fail_unless_db -dump_vars - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -export OS_USERNAME="${DESIGNATE_KEYSTONE_USER}" -export OS_PASSWORD="${DESIGNATE_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -conf=/etc/designate/designate.conf - -# Regular configuration. -crudini --set $conf DEFAULT log_file "" -crudini --set $conf DEFAULT use_stderr "True" -crudini --set $conf DEFAULT debug "${DEBUG_LOGGING}" -crudini --set $conf DEFAULT rpc_backend "designate.openstack.common.rpc.impl_kombu" - -crudini --set $conf oslo_messaging_rabbit rabbit_host "${RABBITMQ_SERVICE_HOST}" -crudini --set $conf oslo_messaging_rabbit rabbit_userid "${RABBIT_USERID}" -crudini --set $conf oslo_messaging_rabbit rabbit_password "${RABBIT_PASSWORD}" - -crudini --set $conf storage:sqlalchemy connection "mysql://${DESIGNATE_DB_USER}:${DESIGNATE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${DESIGNATE_DB_NAME}" - -crudini --set $conf service:api auth_strategy "keystone" -crudini --set $conf service:api api_host "${PUBLIC_IP}" - -# Eventhough this is a central-scoped item, it's used in other Designate -# components as well. Thus it should be configured here, from designate-base. -crudini --set $conf service:central default_pool_id "${DESIGNATE_POOLMAN_POOLID}" - -crudini --set $conf keystone_authtoken identity_uri "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}" -crudini --set $conf keystone_authtoken auth_uri "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set $conf keystone_authtoken admin_tenant_name "${ADMIN_TENANT_NAME}" -crudini --set $conf keystone_authtoken admin_user "${DESIGNATE_KEYSTONE_USER}" -crudini --set $conf keystone_authtoken admin_password "${DESIGNATE_KEYSTONE_PASSWORD}" - -if [ "${DESIGNATE_BACKEND}" == "bind9" ]; then - # Configure a key for RNDC so it can connect with Bind9 to create/delete - # zones. - cat > /etc/rndc.key <<EOF -key "rndc-key" { - algorithm hmac-md5; - secret "${DESIGNATE_BIND9_RNDC_KEY}"; -}; -EOF -fi +../../../../common/designate/designate-base/config-designate.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-central/start.sh b/docker/centos/binary/designate/designate-central/start.sh index fef7e2353..9e0a8c484 100755..120000 --- a/docker/centos/binary/designate/designate-central/start.sh +++ b/docker/centos/binary/designate/designate-central/start.sh @@ -1,24 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh - -check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD DESIGNATE_DB_NAME \ - DESIGNATE_DB_USER DESIGNATE_DB_PASSWORD DESIGNATE_INITDB - -fail_unless_db - -CONF=/etc/designate/designate.conf - -if [ "${DESIGNATE_INITDB}" == "true" ]; then - echo "Configuring database" - mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${DESIGNATE_DB_NAME}; -GRANT ALL PRIVILEGES ON ${DESIGNATE_DB_NAME}.* TO '${DESIGNATE_DB_USER}'@'%' IDENTIFIED BY '${DESIGNATE_DB_PASSWORD}' -EOF - - designate-manage database sync -fi - -exec /usr/bin/designate-central +../../../../common/designate/designate-central/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-mdns/start.sh b/docker/centos/binary/designate/designate-mdns/start.sh index a3e5df274..f7bf747fc 100755..120000 --- a/docker/centos/binary/designate/designate-mdns/start.sh +++ b/docker/centos/binary/designate/designate-mdns/start.sh @@ -1,17 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh - -check_required_vars DESIGNATE_MASTERNS DESIGNATE_MDNS_PORT - -CONF=/etc/designate/designate.conf - -crudini --set $CONF service:mdns workers "1" -crudini --set $CONF service:mdns host "${DESIGNATE_MASTERNS}" -crudini --set $CONF service:mdns port "${DESIGNATE_MDNS_PORT}" -crudini --set $CONF service:mdns tcp_backlog "100" -crudini --set $CONF service:mdns all_tcp "False" - -exec /usr/bin/designate-mdns +../../../../common/designate/designate-mdns/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/designate/designate-poolmanager/start.sh b/docker/centos/binary/designate/designate-poolmanager/start.sh index f5222b3f4..cc428b4fe 100755..120000 --- a/docker/centos/binary/designate/designate-poolmanager/start.sh +++ b/docker/centos/binary/designate/designate-poolmanager/start.sh @@ -1,54 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-designate.sh - -check_required_vars DESIGNATE_MASTERNS DESIGNATE_BACKEND DESIGNATE_SLAVENS \ - DESIGNATE_MDNS_PORT DESIGNATE_DNS_PORT DESIGNATE_POOLMAN_POOLID \ - DESIGNATE_POOLMAN_TARGETS DESIGNATE_POOLMAN_NSS \ - DESIGNATE_POOLMAN_POOLID - -CONF=/etc/designate/designate.conf - -if [ "${DESIGNATE_BACKEND}" == "bind9" ]; then - TYPE="bind9" - OPTIONS="rndc_host: ${DESIGNATE_SLAVENS}, rndc_key_file: /etc/rndc.key" -else - echo Unsupported backend: ${DESIGNATE_BACKEND} - exit -fi - -crudini --set $CONF service:pool_manager workers "1" -crudini --set $CONF service:pool_manager enable_recovery_timer "False" -crudini --set $CONF service:pool_manager periodic_recovery_interval "120" -crudini --set $CONF service:pool_manager enable_sync_timer "True" -crudini --set $CONF service:pool_manager periodic_sync_interval "1800" -crudini --set $CONF service:pool_manager poll_max_retries "10" -crudini --set $CONF service:pool_manager poll_delay "5" -crudini --set $CONF service:pool_manager poll_retry_interval "15" -crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" -crudini --set $CONF service:pool_manager cache_driver "noop" - -# TODO: use this to use memcached -#crudini --set $CONF service:pool_manager cache_driver memcache -#crudini --set $CONF service:pool_manager memcached_servers ${MEMCACHED_HOST} - -# Specify the id of the pool managed through pool_manager. Central gets -# configured with this pool_id as well. -crudini --set $CONF service:pool_manager pool_id "${DESIGNATE_POOLMAN_POOLID}" - -crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} nameservers "${DESIGNATE_POOLMAN_NSS}" -crudini --set $CONF pool:${DESIGNATE_POOLMAN_POOLID} targets "${DESIGNATE_POOLMAN_TARGETS}" - -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} type "${TYPE}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} options "${OPTIONS}" -# This is the mdns container, which is the master nameserver. -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} masters "${DESIGNATE_MASTERNS}:${DESIGNATE_MDNS_PORT}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} host "${DESIGNATE_MASTERNS}" -crudini --set $CONF pool_target:${DESIGNATE_POOLMAN_TARGETS} port "${DESIGNATE_DNS_PORT}" - -crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} host "${DESIGNATE_MASTERNS}" -crudini --set $CONF pool_nameserver:${DESIGNATE_POOLMAN_NSS} port "${DESIGNATE_DNS_PORT}" - -exec /usr/bin/designate-pool-manager +../../../../common/designate/designate-poolmanager/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/galera/config-galera.sh b/docker/centos/binary/galera/config-galera.sh index f0ab542e1..f6782bb87 100755..120000 --- a/docker/centos/binary/galera/config-galera.sh +++ b/docker/centos/binary/galera/config-galera.sh @@ -1,94 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh - -check_required_vars DB_CLUSTER_BIND_ADDRESS DB_CLUSTER_NAME DB_CLUSTER_NODES \ - DB_ROOT_PASSWORD DB_CLUSTER_WSREP_METHOD - -CFG=/etc/my.cnf.d/server.cnf -DB_CLUSTER_INIT_SQL=/tmp/mysql-first-time.sql - -function configure_files { - crudini --set $CFG mariadb bind-address "${DB_CLUSTER_BIND_ADDRESS}" - crudini --set $CFG mariadb binlog_format "ROW" - crudini --set $CFG mariadb character-set-server "utf8" - crudini --set $CFG mariadb collation-server "utf8_general_ci" - crudini --set $CFG mariadb datadir "/var/lib/mysql" - crudini --set $CFG mariadb default-storage-engine "innodb" - crudini --set $CFG mariadb init-connect "'SET NAMES utf8'" - crudini --set $CFG mariadb innodb_autoinc_lock_mode "2" - crudini --set $CFG mariadb innodb_file_per_table 1 - crudini --set $CFG mariadb innodb_flush_log_at_trx_commit "2" - crudini --set $CFG mariadb innodb_locks_unsafe_for_binlog "1" - crudini --set $CFG mariadb innodb_log_file_size "100M" - crudini --set $CFG mariadb query_cache_size "0" - crudini --set $CFG mariadb query_cache_type "0" - crudini --set $CFG mariadb wsrep_cluster_address "gcomm://${DB_CLUSTER_NODES}" - crudini --set $CFG mariadb wsrep_cluster_name "${DB_CLUSTER_NAME}" - crudini --set $CFG mariadb wsrep_provider "/usr/lib64/galera/libgalera_smm.so" - crudini --set $CFG mariadb wsrep_sst_auth "'root:${DB_ROOT_PASSWORD}'" - crudini --set $CFG mariadb wsrep_sst_method "${DB_CLUSTER_WSREP_METHOD}" -} - -function bootstrap_database() { - mysqld_safe & - # Waiting for deamon - sleep 10 - expect -c ' - set timeout 10 - spawn mysql_secure_installation - expect "Enter current password for root (enter for none):" - send "\r" - expect "Set root password?" - send "y\r" - expect "New password:" - send "'"${DB_ROOT_PASSWORD}"'\r" - expect "Re-enter new password:" - send "'"${DB_ROOT_PASSWORD}"'\r" - expect "Remove anonymous users?" - send "y\r" - expect "Disallow root login remotely?" - send "n\r" - expect "Remove test database and access to it?" - send "y\r" - expect "Reload privilege tables now?" - send "y\r" - expect eof' - mysqladmin -p"${DB_ROOT_PASSWORD}" shutdown -} - -function configure_db { - bootstrap_database - - echo "GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '$DB_ROOT_PASSWORD' ;" > $DB_CLUSTER_INIT_SQL - - if [ "$MARIADB_DATABASE" ]; then - echo "CREATE DATABASE IF NOT EXISTS $MARIADB_DATABASE ;" >> $DB_CLUSTER_INIT_SQL - fi - - if [ "$MARIADB_USER" -a "$MARIADB_PASSWORD" ]; then - echo "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD' ;" >> $DB_CLUSTER_INIT_SQL - - if [ "$MARIADB_DATABASE" ]; then - echo "GRANT ALL ON $MARIADB_DATABASE.* TO '$MARIADB_USER'@'%' ;" >> $DB_CLUSTER_INIT_SQL - fi - fi - - echo "FLUSH PRIVILEGES" >> $DB_CLUSTER_INIT_SQL -} - -function populate_db { - if [[ $(ls /var/lib/mysql) == "" ]]; then - echo "POPULATING NEW DB" - mysql_install_db - chown -R mysql /var/lib/mysql - else - echo "DB ALREADY EXISTS" - fi -} - -function prepare_db { - populate_db - configure_db - configure_files -} +../../../common/galera/config-galera.sh
\ No newline at end of file diff --git a/docker/centos/binary/galera/start.sh b/docker/centos/binary/galera/start.sh index 9288b77cc..1fa9a143d 100755..120000 --- a/docker/centos/binary/galera/start.sh +++ b/docker/centos/binary/galera/start.sh @@ -1,14 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-galera.sh - -check_required_vars DB_CLUSTER_INIT_DB -prepare_db - -if [[ "${DB_CLUSTER_INIT_DB}" == "true" ]] && ! [[ -a /var/lib/mysql/cluster.exists ]]; then - DB_CLUSTER_IS_MASTER_NODE="--wsrep-new-cluster" - touch /var/lib/mysql/cluster.exists -fi - -mysqld_safe --init-file=$DB_CLUSTER_INIT_SQL $DB_CLUSTER_IS_MASTER_NODE
\ No newline at end of file +../../../common/galera/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/glance/glance-api/check.sh b/docker/centos/binary/glance/glance-api/check.sh index f97ef70f4..73dd5e253 100755..120000 --- a/docker/centos/binary/glance/glance-api/check.sh +++ b/docker/centos/binary/glance/glance-api/check.sh @@ -1,17 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! glance image-list > /dev/null; then - echo "ERROR: glance image-list failed" >&2 - RES=1 - fi -fi - -exit $RES - +../../../../common/glance/glance-api/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/glance/glance-api/start.sh b/docker/centos/binary/glance/glance-api/start.sh index c546333f4..6740e1fe9 100755..120000 --- a/docker/centos/binary/glance/glance-api/start.sh +++ b/docker/centos/binary/glance/glance-api/start.sh @@ -1,52 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-glance.sh -: ${GLANCE_API_SERVICE_HOST:=$PUBLIC_IP} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - GLANCE_KEYSTONE_USER GLANCE_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \ - PUBLIC_IP - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -crux user-create --update \ - -n "${GLANCE_KEYSTONE_USER}" \ - -p "${GLANCE_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create --remove-all \ - -n glance -t image \ - -I "http://${GLANCE_API_SERVICE_HOST}:9292" \ - -P "http://${PUBLIC_IP}:9292" \ - -A "http://${GLANCE_API_SERVICE_HOST}:9292" - -# turn on notification sending by glance -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - notification_driver \ - "messaging" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - rabbit_host \ - "${RABBITMQ_SERVICE_HOST}" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - registry_host \ - "${GLANCE_REGISTRY_SERVICE_HOST}" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - debug \ - "True" - -exec /usr/bin/glance-api +../../../../common/glance/glance-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/glance/glance-base/config-glance.sh b/docker/centos/binary/glance/glance-base/config-glance.sh index 97d076c11..d5c26f0b8 100644..120000 --- a/docker/centos/binary/glance/glance-base/config-glance.sh +++ b/docker/centos/binary/glance/glance-base/config-glance.sh @@ -1,63 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -: ${ADMIN_TENANT_NAME:=admin} -: ${GLANCE_DB_NAME:=glance} -: ${GLANCE_DB_USER:=glance} -: ${GLANCE_KEYSTONE_USER:=glance} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR} - -check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD -dump_vars - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -export OS_USERNAME="${GLANCE_KEYSTONE_USER}" -export OS_PASSWORD="${GLANCE_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -for cfg in /etc/glance/glance-api.conf /etc/glance/glance-registry.conf; do - crudini --set $cfg \ - DEFAULT \ - log_file \ - "" - - for option in auth_protocol auth_host auth_port; do - crudini --del $cfg \ - keystone_authtoken \ - $option - done - - crudini --set $cfg \ - keystone_authtoken \ - auth_uri \ - "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" - crudini --set $cfg \ - keystone_authtoken \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" - crudini --set $cfg \ - keystone_authtoken \ - admin_user \ - "${GLANCE_KEYSTONE_USER}" - crudini --set $cfg \ - keystone_authtoken \ - admin_password \ - "${GLANCE_KEYSTONE_PASSWORD}" - - crudini --set $cfg \ - paste_deploy \ - flavor \ - keystone - - crudini --set $cfg \ - database \ - connection \ - "mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${GLANCE_DB_NAME}" -done - +../../../../common/glance/glance-base/config-glance.sh
\ No newline at end of file diff --git a/docker/centos/binary/glance/glance-registry/start.sh b/docker/centos/binary/glance/glance-registry/start.sh index 5f590fb1c..1295cdc31 100755..120000 --- a/docker/centos/binary/glance/glance-registry/start.sh +++ b/docker/centos/binary/glance/glance-registry/start.sh @@ -1,21 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-glance.sh - -check_required_vars GLANCE_DB_NAME GLANCE_DB_USER GLANCE_DB_PASSWORD -# lets wait for the DB to be available -wait_for 25 1 check_for_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${GLANCE_DB_NAME} DEFAULT CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON ${GLANCE_DB_NAME}.* TO - '${GLANCE_DB_USER}'@'%' IDENTIFIED BY '${GLANCE_DB_PASSWORD}' - -EOF - -/usr/bin/glance-manage db_sync - -exec /usr/bin/glance-registry +../../../../common/glance/glance-registry/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/hautoproxy/haproxy.cfg.tmpl b/docker/centos/binary/hautoproxy/haproxy.cfg.tmpl index cd1174b21..dc3f45c31 100644..120000 --- a/docker/centos/binary/hautoproxy/haproxy.cfg.tmpl +++ b/docker/centos/binary/hautoproxy/haproxy.cfg.tmpl @@ -1,26 +1 @@ -global - daemon - maxconn 4096 - pidfile /var/run/haproxy.pid - -defaults - mode tcp - timeout connect 5s - timeout client 1m - timeout server 1m - option redispatch - balance roundrobin - -listen stats :1936 - mode http - stats enable - stats hide-version - #stats realm Haproxy\ Statistics - stats uri / - #stats auth Username:Password - -{% for service in services %} -listen {{ service.service_name }} - bind 127.0.0.1:{{service.local_port}} - server {{ service.remote_name }} {{ service.remote_addr }}:{{ service.remote_port}} check inter 2s rise 3 fall 2 -{% endfor %} +../../../common/hautoproxy/haproxy.cfg.tmpl
\ No newline at end of file diff --git a/docker/centos/binary/hautoproxy/start.py b/docker/centos/binary/hautoproxy/start.py index 877b22157..f89efa2f8 100755..120000 --- a/docker/centos/binary/hautoproxy/start.py +++ b/docker/centos/binary/hautoproxy/start.py @@ -1,65 +1 @@ -#!/usr/bin/python - -'''This script configures and starts a local haproxy instances, bound to -127.0.0.1, that forwards connections all of the discovered -docker/kubernetes environment variables.''' - -import argparse -import os -import sys -from jinja2 import Environment, FileSystemLoader -import re -import urlparse - -re_url = re.compile( - '^(?P<name>.*)_PORT_(?P<port>\d+)_(?P<proto>(UDP|TCP))$') - -def parse_args(): - p = argparse.ArgumentParser() - p.add_argument('--output', '-o', - default='/etc/haproxy/haproxy.cfg') - p.add_argument('--no-start', '-n', - action='store_true') - p.add_argument('--template-dir', '-t', - default='/etc/haproxy/templates') - return p.parse_args() - -def discover_services(): - services = [] - for k in os.environ: - mo = re_url.match(k) - - if mo: - parts = urlparse.urlparse(os.environ[k]) - remote_host,remote_port = parts.netloc.split(':') - service_name = '%(name)s-%(port)s' % mo.groupdict() - - services.append({ - 'remote_name': mo.group('name'), - 'remote_addr': remote_host, - 'remote_port': remote_port, - 'remote_proto': parts.scheme, - 'local_port': mo.group('port'), - 'service_name': service_name, - }) - - return services - -def main(): - args = parse_args() - services = discover_services() - - env = Environment(loader=FileSystemLoader(['.', - args.template_dir])) - template = env.get_template('haproxy.cfg.tmpl') - with open(args.output, 'w') as fd: - fd.write(template.render(services=services)) - - if args.no_start: - return - - os.execlp('haproxy', 'haproxy', '-f', args.output, '-db') - -if __name__ == '__main__': - main() - +../../../common/hautoproxy/start.py
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api-cfn/check.sh b/docker/centos/binary/heat/heat-api-cfn/check.sh index ee03dc6d2..68fce28bf 100755..120000 --- a/docker/centos/binary/heat/heat-api-cfn/check.sh +++ b/docker/centos/binary/heat/heat-api-cfn/check.sh @@ -1,16 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES +../../../../common/heat/heat-api-cfn/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api-cfn/start.sh b/docker/centos/binary/heat/heat-api-cfn/start.sh index bcd72250b..a71201d4b 100755..120000 --- a/docker/centos/binary/heat/heat-api-cfn/start.sh +++ b/docker/centos/binary/heat/heat-api-cfn/start.sh @@ -1,28 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-heat.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ - ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \ - HEAT_API_CFN_SERVICE_PORT - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -crux user-create -n ${HEAT_CFN_KEYSTONE_USER} \ - -p ${HEAT_CFN_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${HEAT_CFN_KEYSTONE_USER} -t cloudformation \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" - -exec /usr/bin/heat-api-cfn +../../../../common/heat/heat-api-cfn/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api/check.sh b/docker/centos/binary/heat/heat-api/check.sh index ee03dc6d2..1e72d2e2c 100755..120000 --- a/docker/centos/binary/heat/heat-api/check.sh +++ b/docker/centos/binary/heat/heat-api/check.sh @@ -1,16 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES +../../../../common/heat/heat-api/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api/start.sh b/docker/centos/binary/heat/heat-api/start.sh index b57aaa710..cf3eb022c 100755..120000 --- a/docker/centos/binary/heat/heat-api/start.sh +++ b/docker/centos/binary/heat/heat-api/start.sh @@ -1,29 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-heat.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - HEAT_API_SERVICE_HOST PUBLIC_IP - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" -crux user-create -n ${HEAT_KEYSTONE_USER} \ - -p ${HEAT_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t orchestration \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8004/v1/%(tenant_id)s" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" - -# will use crux after https://github.com/larsks/crux/issues/1 is implemented -openstack role list --os-token="${KEYSTONE_ADMIN_TOKEN}" --os-url $SERVICE_ENDPOINT -f csv | tail -n +2 | awk -F, '{print $2}' | grep heat_stack_user || keystone role-create --name heat_stack_user - -exec /usr/bin/heat-api +../../../../common/heat/heat-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-base/config-heat.sh b/docker/centos/binary/heat/heat-base/config-heat.sh index 74b2718a4..8b4e89797 100755..120000 --- a/docker/centos/binary/heat/heat-base/config-heat.sh +++ b/docker/centos/binary/heat/heat-base/config-heat.sh @@ -1,67 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -: ${ADMIN_TENANT_NAME:=admin} -: ${HEAT_DB_NAME:=heat} -: ${HEAT_DB_USER:=heat} -: ${HEAT_KEYSTONE_USER:=heat} -: ${HEAT_CFN_KEYSTONE_USER:=heat_cfn} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${PUBLIC_IP:=$HEAT_API_PORT_8004_TCP_ADDR} -: ${RABBIT_USER:=guest} -: ${RABBIT_PASSWORD:=guest} - -check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST - -fail_unless_db -dump_vars - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -export OS_USERNAME="${HEAT_KEYSTONE_USER}" -export OS_PASSWORD="${HEAT_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -crudini --set /etc/heat/heat.conf DEFAULT log_file \ - "" -crudini --set /etc/heat/heat.conf DEFAULT use_stderr \ - true -crudini --set /etc/heat/heat.conf DEFAULT rpc_backend \ - heat.openstack.common.rpc.impl_kombu -crudini --set /etc/heat/heat.conf DEFAULT rabbit_host \ - "${RABBITMQ_SERVICE_HOST}" -crudini --set /etc/heat/heat.conf DEFAULT rabbit_userid \ - "${RABBIT_USER}" -crudini --set /etc/heat/heat.conf DEFAULT rabbit_password \ - "${RABBIT_PASSWORD}" - -crudini --set /etc/heat/heat.conf database connection \ - mysql://${HEAT_DB_USER}:${HEAT_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${HEAT_DB_NAME} - -crudini --set /etc/heat/heat.conf keystone_authtoken auth_protocol \ - "${KEYSTONE_AUTH_PROTOCOL}" -crudini --set /etc/heat/heat.conf keystone_authtoken auth_host \ - "${KEYSTONE_PUBLIC_SERVICE_HOST}" -crudini --set /etc/heat/heat.conf keystone_authtoken auth_port \ - "${KEYSTONE_PUBLIC_SERVICE_PORT}" -crudini --set /etc/heat/heat.conf keystone_authtoken auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set /etc/heat/heat.conf keystone_authtoken admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set /etc/heat/heat.conf keystone_authtoken admin_user \ - "${HEAT_KEYSTONE_USER}" -crudini --set /etc/heat/heat.conf keystone_authtoken admin_password \ - "${HEAT_KEYSTONE_PASSWORD}" - -crudini --set /etc/heat/heat.conf ec2authtoken auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" - -crudini --set /etc/heat/heat.conf DEFAULT heat_metadata_server_url \ - http://${HEAT_API_CFN_URL_HOST}:${HEAT_API_CFN_SERVICE_PORT} -crudini --set /etc/heat/heat.conf DEFAULT heat_waitcondition_server_url \ - http://${HEAT_API_CFN_URL_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1/waitcondition +../../../../common/heat/heat-base/config-heat.sh
\ No newline at end of file diff --git a/docker/centos/binary/heat/heat-engine/start.sh b/docker/centos/binary/heat/heat-engine/start.sh index 2dfc78e92..d660bc5d1 100755..120000 --- a/docker/centos/binary/heat/heat-engine/start.sh +++ b/docker/centos/binary/heat/heat-engine/start.sh @@ -1,17 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-heat.sh - -check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD -fail_unless_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${HEAT_DB_NAME} DEFAULT CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON ${HEAT_DB_NAME}.* TO - '${HEAT_DB_USER}'@'%' IDENTIFIED BY '${HEAT_DB_PASSWORD}' -EOF - -/usr/bin/heat-manage db_sync - -exec /usr/bin/heat-engine +../../../../common/heat/heat-engine/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/horizon/start.sh b/docker/centos/binary/horizon/start.sh index 4e720bb87..3c793e4f9 100755..120000 --- a/docker/centos/binary/horizon/start.sh +++ b/docker/centos/binary/horizon/start.sh @@ -1,36 +1 @@ -#!/bin/bash -set -e - -: ${HORIZON_KEYSTONE_USER:=horizon} - -. /opt/kolla/kolla-common.sh - -fail_unless_os_service_running keystone -fail_unless_os_service_running glance -fail_unless_os_service_running nova - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -cfg=/etc/openstack-dashboard/local_settings -httpdcfg=/etc/httpd/conf.d/openstack-dashboard.conf - -sed -ri 's/ALLOWED_HOSTS = \['\''horizon.example.com'\'', '\''localhost'\''\]/ALLOWED_HOSTS = \['\''*'\'', \]/' /etc/openstack-dashboard/local_settings - -sed -ri 's/OPENSTACK_KEYSTONE_URL = \"http:\/\/%s:5000\/v2.0\" % OPENSTACK_HOST/OPENSTACK_KEYSTONE_URL = \"http:\/\/'"$KEYSTONE_PUBLIC_SERVICE_HOST"':5000\/v2.0\"/' /etc/openstack-dashboard/local_settings - -sed -ri 's/OPENSTACK_HOST = \"127.0.0.1\"/OPENSTACK_HOST = \"'"$KEYSTONE_PUBLIC_SERVICE_HOST"'\" /' /etc/openstack-dashboard/local_settings - -# Make sure we launch horizon using the default value for WEBROOT, which is -# '/'. -sed -ri '/^WEBROOT =.+/d' $cfg -sed -ri 's,^(WSGIScriptAlias) /dashboard (/usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi),\1 / \2,' $httpdcfg -sed -ri 's,^(Alias /dashboard)(/static /usr/share/openstack-dashboard/static),Alias \2,' $httpdcfg - -# This step is required because of: -# https://bugzilla.redhat.com/show_bug.cgi?id=1220070 -# Running this in the Dockerfile didn't fix the HTTP/500 as a result of the -# missing compress action. -python /usr/share/openstack-dashboard/manage.py compress - -/usr/sbin/httpd -DFOREGROUND +../../../common/horizon/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/keystone/check.sh b/docker/centos/binary/keystone/check.sh index ca4844784..fe8e7608c 100755..120000 --- a/docker/centos/binary/keystone/check.sh +++ b/docker/centos/binary/keystone/check.sh @@ -1,12 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -fi - -exit $RES - +../../../common/keystone/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/keystone/start.sh b/docker/centos/binary/keystone/start.sh index 6dfebe060..ae34844ea 100755..120000 --- a/docker/centos/binary/keystone/start.sh +++ b/docker/centos/binary/keystone/start.sh @@ -1,162 +1 @@ -#!/bin/bash - -set -e - -# Run Kolla common script -echo "Running the kolla-common script" -. /opt/kolla/kolla-common.sh - -# Credentials, token, etc.. -: ${ADMIN_USER:=admin} -: ${ADMIN_USER_PASSWORD:=password} -: ${ADMIN_TENANT_NAME:=admin} -: ${KEYSTONE_USER:=keystone} -: ${KEYSTONE_ADMIN_PASSWORD:=password} -: ${KEYSTONE_ADMIN_TOKEN:=changeme} -# DB Settings -: ${INIT_DB:=true} -: ${KEYSTONE_DB_NAME:=keystone} -: ${KEYSTONE_DB_USER:=keystone} -: ${DB_ROOT_PASSWORD:=password} -: ${MARIADB_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_DB_PASSWORD:=password} -# Service Addresses/Ports/Version -: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_ADMIN_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000} -: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357} -: ${KEYSTONE_API_VERSION:=2.0} -# Logging -: ${LOG_FILE:=/var/log/keystone/keystone.log} -: ${VERBOSE_LOGGING:=true} -: ${DEBUG_LOGGING:=false} -: ${USE_STDERR:=false} -# Token provider, driver, etc.. -: ${TOKEN_PROVIDER:=uuid} -: ${TOKEN_DRIVER:=sql} - -## Check DB connectivity and required variables -echo "Checking connectivity to the DB" -fail_unless_db -echo "Checking for required variables" -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \ - KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \ - KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \ - PUBLIC_IP -dump_vars - -# Setup the Keystone DB -echo "Setting up Keystone DB" -mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${KEYSTONE_DB_NAME}; -GRANT ALL PRIVILEGES ON ${KEYSTONE_DB_NAME}.* TO - '${KEYSTONE_DB_USER}'@'%' IDENTIFIED BY '${KEYSTONE_DB_PASSWORD}' -EOF - -# File path and name used by crudini tool -cfg=/etc/keystone/keystone.conf - -# Token Configuration -echo "Configuring keystone.conf" -crudini --set $cfg \ - DEFAULT \ - admin_token \ - "${KEYSTONE_ADMIN_TOKEN}" - -# Database Configuration -crudini --set $cfg \ - database \ - connection \ - "mysql://${KEYSTONE_DB_USER}:${KEYSTONE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${KEYSTONE_DB_NAME}" - -# Logging -crudini --del $cfg \ - DEFAULT \ - log_dir -crudini --set $cfg \ - DEFAULT \ - log_file \ - ${LOG_FILE} -crudini --set $cfg \ - DEFAULT \ - verbose \ - ${VERBOSE_LOGGING} -crudini --set $cfg \ - DEFAULT \ - debug \ - ${DEBUG_LOGGING} -crudini --set $cfg \ - DEFAULT \ - use_stderr \ - ${USE_STDERR} - -# Token Management -crudini --set $cfg \ - token \ - provider \ - keystone.token.providers."${TOKEN_PROVIDER}".Provider -crudini --set $cfg \ - token \ - driver \ - keystone.token.persistence.backends."${TOKEN_DRIVER}".Token -crudini --set $cfg \ - revoke \ - driver \ - keystone.contrib.revoke.backends."${TOKEN_DRIVER}".Revoke - -# Setup the openrc auth file -cat > /openrc <<EOF -export OS_AUTH_URL=http://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v${KEYSTONE_API_VERSION} -export OS_USERNAME=${KEYSTONE_USER} -export OS_PASSWORD=${KEYSTONE_ADMIN_PASSWORD} -export OS_TENANT_NAME=${ADMIN_TENANT_NAME} -EOF - -# Run PKI Setup script -echo "Setting up PKI" -/usr/bin/keystone-manage pki_setup --keystone-user keystone --keystone-group keystone - -# Fix permissions -chown -R keystone:keystone /var/log/keystone -chown -R keystone:keystone /etc/keystone/ssl -chmod -R o-rwx /etc/keystone/ssl - -# Initialize the Keystone DB -echo "Initializing Keystone DB" -if [ "${INIT_DB}" == "true" ] ; then - su -s /bin/bash -c "keystone-manage db_sync" keystone -fi - -# Start Keystone -echo "Starting Keystone" -/usr/bin/keystone-all & -PID=$! - -# Export Keystone service environment variables -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v${KEYSTONE_API_VERSION}" - -# Check to make sure the service is running -echo "Verifying Keystone is running" -while ! curl -o /dev/null -s --fail ${SERVICE_ENDPOINT}; do - echo "waiting for Keystone @ ${SERVICE_ENDPOINT}" - sleep 1; -done -echo "keystone is active @ ${SERVICE_ENDPOINT}" - -# Create Keystone tenant, user, role, service and endpoints -echo "Creating Keystone tenant, user, role, service and endpoints" -crux user-create --update \ - -n ${ADMIN_USER} -p "${ADMIN_USER_PASSWORD}" \ - -t ${ADMIN_TENANT_NAME} -r admin -crux user-create --update \ - -n ${KEYSTONE_USER} -p "${KEYSTONE_ADMIN_PASSWORD}" \ - -t ${ADMIN_TENANT_NAME} -r admin -crux endpoint-create --remove-all \ - -n keystone -t identity \ - -I "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v${KEYSTONE_API_VERSION}" \ - -A "http://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v${KEYSTONE_API_VERSION}" \ - -P "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v${KEYSTONE_API_VERSION}" - -# Wait on all jobs to exit before proceeding (see man wait) -wait +../../../common/keystone/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-api/check.sh b/docker/centos/binary/magnum/magnum-api/check.sh index ee03dc6d2..7464ba296 100755..120000 --- a/docker/centos/binary/magnum/magnum-api/check.sh +++ b/docker/centos/binary/magnum/magnum-api/check.sh @@ -1,16 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES +../../../../common/magnum/magnum-api/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-api/start.sh b/docker/centos/binary/magnum/magnum-api/start.sh index 00a51b3cd..58cc9e37c 100755..120000 --- a/docker/centos/binary/magnum/magnum-api/start.sh +++ b/docker/centos/binary/magnum/magnum-api/start.sh @@ -1,27 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-magnum.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - MAGNUM_KEYSTONE_USER MAGNUM_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - MAGNUM_API_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ - MAGNUM_API_SERVICE_PORT - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" -crux user-create -n ${MAGNUM_KEYSTONE_USER} \ - -p ${MAGNUM_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${MAGNUM_KEYSTONE_USER} -t container \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" - -exec /usr/bin/magnum-api +../../../../common/magnum/magnum-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-base/config-magnum.sh b/docker/centos/binary/magnum/magnum-base/config-magnum.sh index 03599d359..473c0be8e 100755..120000 --- a/docker/centos/binary/magnum/magnum-base/config-magnum.sh +++ b/docker/centos/binary/magnum/magnum-base/config-magnum.sh @@ -1,46 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -check_required_vars MAGNUM_DB_PASSWORD MAGNUM_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT \ - MAGNUM_KEYSTONE_USER ADMIN_TENANT_NAME \ - MAGNUM_DB_USER MAGNUM_DB_NAME KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_PUBLIC_SERVICE_PORT RABBITMQ_SERVICE_HOST \ - VERBOSE_LOGGING DEBUG_LOGGING - -fail_unless_db -dump_vars - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -export OS_USERNAME="${MAGNUM_KEYSTONE_USER}" -export OS_PASSWORD="${MAGNUM_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -cfg=/etc/magnum/magnum.conf - -crudini --set $cfg DEFAULT log_file "" -crudini --set $cfg DEFAULT verbose "${VERBOSE_LOGGING}" -crudini --set $cfg DEFAULT debug "${DEBUG_LOGGING}" -crudini --set $cfg DEFAULT use_stderr true -crudini --set $cfg DEFAULT rpc_backend magnum.openstack.common.rpc.impl_kombu -crudini --set $cfg DEFAULT admin_user admin -crudini --set $cfg oslo_messaging_rabbit rabbit_host ${RABBITMQ_SERVICE_HOST} -crudini --set $cfg oslo_messaging_rabbit rabbit_userid ${RABBIT_USER} -crudini --set $cfg oslo_messaging_rabbit rabbit_password ${RABBIT_PASSWORD} -crudini --set $cfg database connection \ - mysql://${MAGNUM_DB_USER}:${MAGNUM_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${MAGNUM_DB_NAME} -crudini --set $cfg keystone_authtoken auth_protocol "${KEYSTONE_AUTH_PROTOCOL}" -crudini --set $cfg keystone_authtoken auth_host "${KEYSTONE_PUBLIC_SERVICE_HOST}" -crudini --set $cfg keystone_authtoken auth_port "${KEYSTONE_PUBLIC_SERVICE_PORT}" -crudini --set $cfg keystone_authtoken auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set $cfg keystone_authtoken admin_tenant_name "${ADMIN_TENANT_NAME}" -crudini --set $cfg keystone_authtoken admin_user "${MAGNUM_KEYSTONE_USER}" -crudini --set $cfg keystone_authtoken admin_password \ - "${MAGNUM_KEYSTONE_PASSWORD}" -crudini --set $cfg api host ${MAGNUM_API_SERVICE_HOST} +../../../../common/magnum/magnum-base/config-magnum.sh
\ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-conductor/start.sh b/docker/centos/binary/magnum/magnum-conductor/start.sh index 4cf1291a3..681863036 100755..120000 --- a/docker/centos/binary/magnum/magnum-conductor/start.sh +++ b/docker/centos/binary/magnum/magnum-conductor/start.sh @@ -1,17 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-magnum.sh - -check_required_vars MAGNUM_DB_NAME MAGNUM_DB_USER MAGNUM_DB_PASSWORD -fail_unless_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${MAGNUM_DB_NAME} DEFAULT CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON ${MAGNUM_DB_NAME}.* TO - '${MAGNUM_DB_USER}'@'%' IDENTIFIED BY '${MAGNUM_DB_PASSWORD}' -EOF - -/usr/bin/magnum-db-manage upgrade - -exec /usr/bin/magnum-conductor +../../../../common/magnum/magnum-conductor/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/mariadb-app/config-mysql.sh b/docker/centos/binary/mariadb-app/config-mysql.sh index b11939b8b..17341e415 100755..120000 --- a/docker/centos/binary/mariadb-app/config-mysql.sh +++ b/docker/centos/binary/mariadb-app/config-mysql.sh @@ -1,24 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh - -: ${BIND_ADDRESS:=$PUBLIC_IP} -: ${DB_ROOT_PASSWORD:=$DB_ROOT_PASSWORD} -: ${DEFAULT_STORAGE_ENGINE:=innodb} -: ${COLLATION_SERVER:=utf8_general_ci} -: ${INIT_CONNECT:=SET NAMES utf8} -: ${CHAR_SET_SERVER:=utf8} -: ${INNODB_FILE_PER_TABLE:=true} -: ${DATADIR:=/var/lib/mysql} -: ${TEMP_FILE:='/tmp/mysql-first-time.sql'} - -server_cnf=/etc/my.cnf.d/server.cnf - -crudini --set $server_cnf mysqld bind-address $BIND_ADDRESS -crudini --set $server_cnf mysqld default-storage-engine $DEFAULT_STORAGE_ENGINE -crudini --set $server_cnf mysqld collation-server $COLLATION_SERVER -crudini --set $server_cnf mysqld init-connect "'${INIT_CONNECT}'" -crudini --set $server_cnf mysqld character-set-server $CHAR_SET_SERVER -if [ "${INNODB_FILE_PER_TABLE}" == "true" ] || ["${INNODB_FILE_PER_TABLE}" == "True" ] ; then - crudini --set $server_cnf mysqld innodb_file_per_table 1 -fi +../../../common/mariadb-app/config-mysql.sh
\ No newline at end of file diff --git a/docker/centos/binary/mariadb-app/mysql-entrypoint.sh b/docker/centos/binary/mariadb-app/mysql-entrypoint.sh deleted file mode 100755 index 6dece43ca..000000000 --- a/docker/centos/binary/mariadb-app/mysql-entrypoint.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -set -e - -# Configure MySQL settings -. /opt/kolla/config-mysql.sh - -if [ -z "$(ls -A /var/lib/mysql)" -a "${1%_safe}" = 'mysqld' ]; then - PATH=/usr/libexec:$PATH - export PATH - - if [ -z "$MARIADB_ROOT_PASSWORD" ]; then - echo >&2 'error: database is uninitialized and MARIADB_ROOT_PASSWORD not set' - echo >&2 ' Did you forget to add -e MARIADB_ROOT_PASSWORD=... ?' - exit 1 - fi - - mysql_install_db --user=mysql --datadir="$DATADIR" - - # These statements _must_ be on individual lines, and _must_ end with - # semicolons (no line breaks or comments are permitted). - # TODO proper SQL escaping on ALL the things D: - TEMP_FILE='/tmp/mysql-first-time.sql' - cat > "$TEMP_FILE" <<-EOSQL -DELETE FROM mysql.user ; -CREATE USER 'root'@'%' IDENTIFIED BY '${MARIADB_ROOT_PASSWORD}' ; -GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION ; -DROP DATABASE IF EXISTS test ; -EOSQL - - if [ "$MARIADB_DATABASE" ]; then - echo "CREATE DATABASE IF NOT EXISTS $MARIADB_DATABASE ;" >> "$TEMP_FILE" - fi - - if [ "$MARIADB_USER" -a "$MARIADB_PASSWORD" ]; then - echo "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD' ;" >> "$TEMP_FILE" - - if [ "$MARIADB_DATABASE" ]; then - echo "GRANT ALL ON $MARIADB_DATABASE.* TO '$MARIADB_USER'@'%' ;" >> "$TEMP_FILE" - fi - fi - - echo 'FLUSH PRIVILEGES ;' >> "$TEMP_FILE" - - set -- "$@" --init-file="$TEMP_FILE" -fi - -chown -R mysql:mysql "$DATADIR" - -exec "$@" diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh index 7dda736ef..fcce4f251 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh @@ -1,13 +1 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ DHCP / {print $9}') -error="ERROR: Neutron DHCP Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES +../../../../../common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh index d32c1e272..3975d06b6 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh @@ -1,13 +1 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ L3 / {print $9}') -error="ERROR: Neutron L3 Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES +../../../../../common/neutron/neutron-agents/check-scripts/check-l3-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh index 4485fc1ec..8f26a18fe 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh @@ -1,13 +1 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $10}') -error="ERROR: Neutron Linux Bridge agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES +../../../../../common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh index fd1c6812b..aabb2a9ee 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh @@ -1,13 +1 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Metadata / {print $9}') -error="ERROR: Neutron Metadata Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES +../../../../../common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh index db71678b1..8ef8dec06 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh @@ -1,88 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /opt/kolla/config-sudoers.sh - -: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq} -: ${USE_NAMESPACES:=true} -: ${DELETE_NAMESPACES:=true} -: ${DNSMASQ_CONFIG_FILE:=/etc/neutron/dnsmasq/dnsmasq-neutron.conf} -: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} - -mkdir -p $(dirname $DNSMASQ_CONFIG_FILE) - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING MECHANISM_DRIVERS \ - DHCP_DRIVER USE_NAMESPACES DELETE_NAMESPACES \ - NEUTRON_LOG_DIR DNSMASQ_CONFIG_FILE \ - -cfg=/etc/neutron/dhcp_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Workaround bug in dhclient in cirros images which does not correctly -# handle setting checksums of packets when using hardware with checksum -# offloading. See: -# https://www.rdoproject.org/forum/discussion/567/packstack-allinone-grizzly-cirros-image-cannot-get-a-dhcp-address-when-a-centos-image-can/p1 - -/usr/sbin/iptables -A POSTROUTING -t mangle -p udp --dport bootpc \ - -j CHECKSUM --checksum-fill - -if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then - interface_driver="neutron.agent.linux.interface.BridgeInterfaceDriver" -elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then - interface_driver="neutron.agent.linux.interface.OVSInterfaceDriver" -fi - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_DHCP_AGENT_LOG_FILE}" - -# Configure dhcp_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "$interface_driver" -crudini --set $cfg \ - DEFAULT \ - dhcp_driver \ - "${DHCP_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - use_namespaces \ - "${USE_NAMESPACES}" -crudini --set $cfg \ - DEFAULT \ - delete_namespaces \ - "${DELETE_NAMESPACES}" -crudini --set $cfg \ - DEFAULT \ - dnsmasq_config_file \ - "${DNSMASQ_CONFIG_FILE}" -crudini --set $cfg \ - DEFAULT \ - root_helper \ - "${ROOT_HELPER}" - -cat > ${DNSMASQ_CONFIG_FILE} <<EOF -dhcp-option-force=26,1450 -log-facility=${NEUTRON_LOG_DIR}/neutron-dnsmasq.log -EOF - -# Remove any existing qdhcp namespaces -ip netns list | grep qdhcp | while read -r line ; do - ip netns delete $line -done - -# Start DHCP Agent -exec /usr/bin/neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini --config-dir /etc/neutron +../../../../../common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh index 761d07685..d92fe01ec 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh @@ -1,85 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /opt/kolla/config-sudoers.sh - -: ${USE_NAMESPACES:=true} - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING - -cfg=/etc/neutron/l3_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_L3_AGENT_LOG_FILE}" - -# Configure l3_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -if [[ "${MECHANISM_DRIVERS}" =~ linuxbridge ]] ; then - crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "neutron.agent.linux.interface.BridgeInterfaceDriver" - crudini --set $cfg \ - DEFAULT \ - gateway_external_network_id \ - "" - crudini --set $cfg \ - DEFAULT \ - external_network_bridge \ - "" -elif [[ "${MECHANISM_DRIVERS}" =~ .*openvswitch* ]] ; then - crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "neutron.agent.linux.interface.OVSInterfaceDriver" - crudini --set $cfg \ - DEFAULT \ - gateway_external_network_id \ - "${NEUTRON_FLAT_NETWORK_BRIDGE}" - crudini --set $cfg \ - DEFAULT \ - external_network_bridge \ - "${NEUTRON_FLAT_NETWORK_BRIDGE}" -fi - -crudini --set $cfg \ - DEFAULT \ - use_namespaces \ - "${USE_NAMESPACES}" - -if [ "${USE_NAMESPACES}" == "false" ] ; then - source /openrc - # Create router if it does not exist - /usr/bin/neutron router-list | grep admin-router || /usr/bin/neutron router-create admin-router - # Set router-id - crudini --set $cfg \ - DEFAULT \ - router_id \ - "$(/usr/bin/neutron router-list | awk '/ admin-router / {print $2}')" -elif [ "${USE_NAMESPACES}" == "true" ] ; then - crudini --set $cfg \ - DEFAULT \ - router_delete_namespaces \ - "true" -fi - -# Remove any existing qrouter namespaces -ip netns list | grep qrouter | while read -r line ; do - ip netns delete $line -done - -# Start L3 Agent -exec /usr/bin/neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-dir /etc/neutron +../../../../../common/neutron/neutron-agents/config-scripts/config-l3-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh index bd8f90194..0736ca3ca 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh @@ -1,29 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /opt/kolla/config-sudoers.sh - -: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} -: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1} - -check_required_vars PUBLIC_IP NEUTRON_FLAT_NETWORK_NAME \ - NEUTRON_FLAT_NETWORK_INTERFACE - -cfg=/etc/neutron/plugins/ml2/ml2_conf.ini - -# Configure ml2_conf.ini -if [[ ${TYPE_DRIVERS} =~ vxlan ]]; then - crudini --set $cfg \ - vxlan \ - local_ip \ - "${PUBLIC_IP}" -fi - -crudini --set $cfg \ - linux_bridge \ - physical_interface_mappings \ - "${NEUTRON_FLAT_NETWORK_NAME}:${NEUTRON_FLAT_NETWORK_INTERFACE}" - -exec /usr/bin/neutron-linuxbridge-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-dir /etc/neutron +../../../../../common/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh index d1eef341c..7e9c1b299 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh +++ b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh @@ -1,74 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /opt/kolla/config-sudoers.sh - -: ${KEYSTONE_REGION:=RegionOne} -: ${ENDPOINT_TYPE:=adminURL} -: ${NEUTRON_SHARED_SECRET:=sharedsecret} - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_PUBLIC_SERVICE_HOST ADMIN_TENANT_NAME \ - NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ - NEUTRON_SHARED_SECRET NOVA_METADATA_API_SERVICE_HOST \ - NOVA_METADATA_API_SERVICE_PORT - -cfg=/etc/neutron/metadata_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_METADATA_AGENT_LOG_FILE}" - -# Configure metadata_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - auth_region \ - "${KEYSTONE_REGION}" -crudini --set $cfg \ - DEFAULT \ - endpoint_type \ - "${ENDPOINT_TYPE}" -crudini --set $cfg \ - DEFAULT \ - auth_url \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set $cfg \ - DEFAULT \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg \ - DEFAULT \ - admin_user \ - "${NEUTRON_KEYSTONE_USER}" -crudini --set $cfg \ - DEFAULT \ - admin_password \ - "${NEUTRON_KEYSTONE_PASSWORD}" -crudini --set $cfg \ - DEFAULT \ - nova_metadata_ip \ - "${NOVA_METADATA_API_SERVICE_HOST}" -crudini --set $cfg \ - DEFAULT \ - nova_metadata_port \ - "${NOVA_METADATA_API_SERVICE_PORT}" -crudini --set $cfg \ - DEFAULT \ - metadata_proxy_shared_secret \ - "${NEUTRON_SHARED_SECRET}" - -# Start Metadata Agent -exec /usr/bin/neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini --config-dir /etc/neutron +../../../../../common/neutron/neutron-agents/config-scripts/config-metadata-agent.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh index 0e02226db..3ecc0c823 100755..120000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh +++ b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh @@ -1,12 +1 @@ -#!/bin/bash - -# Neutron uses rootwrap which requires a tty for sudo. -# Since the container is running in daemon mode, a tty -# is not present and requiretty must be commented out. -if [ ! -f /var/run/sudo-modified ]; then - chmod 0640 /etc/sudoers - sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers - chmod 0440 /etc/sudoers -fi - -touch /var/run/sudo-modified +../../../../../common/neutron/neutron-agents/config-scripts/config-sudoers.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini b/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini index 41f761abf..84e47b1c2 100644..120000 --- a/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini +++ b/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini @@ -1,3 +1 @@ -[fwaas] -#driver = neutron.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver -#enabled = True +../../../../common/neutron/neutron-agents/fwaas_driver.ini
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/supervisord.conf b/docker/centos/binary/neutron/neutron-agents/supervisord.conf index 7455cb3d7..a7f24cb77 100644..120000 --- a/docker/centos/binary/neutron/neutron-agents/supervisord.conf +++ b/docker/centos/binary/neutron/neutron-agents/supervisord.conf @@ -1,53 +1 @@ -[unix_http_server] -file = /var/run/supervisor.sock - -[inet_http_server] -port = 127.0.0.1:9001 - -[supervisord] -nodaemon=true -logfile = /var/log/supervisor/supervisord.log -logfile_maxbytes = 200KB -logfile_backups = 1 -pidfile = /var/run/supervisord.pid -childlogdir = /var/log/supervisor - -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[supervisorctl] -serverurl = unix:///var/run/supervisor.sock - -[program:neutron-linuxbridge-agent] -command=/opt/kolla/neutron/config-linuxbridge-agent.sh -priority=30 -startsec=10 -stderr_events_enabled=true -stdout_events_enabled=true - -[program:neutron-dhcp-agent] -command=/opt/kolla/neutron/config-dhcp-agent.sh -priority=40 -startsec=10 -stderr_events_enabled=true -stdout_events_enabled=true - -[program:neutron-metadata-agent] -command=/opt/kolla/neutron/config-metadata-agent.sh -priority=40 -startsec=10 -stderr_events_enabled=true -stdout_events_enabled=true - -[program:neutron-l3-agent] -command=/opt/kolla/neutron/config-l3-agent.sh -priority=40 -startsec=10 -stderr_events_enabled=true -stdout_events_enabled=true - -[eventlistener:stdout] -command = supervisor_stdout -buffer_size = 100 -events = PROCESS_LOG -result_handler = supervisor_stdout:event_handler +../../../../common/neutron/neutron-agents/supervisord.conf
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-base/config-neutron.sh b/docker/centos/binary/neutron/neutron-base/config-neutron.sh index 015565105..0de598123 100644..120000 --- a/docker/centos/binary/neutron/neutron-base/config-neutron.sh +++ b/docker/centos/binary/neutron/neutron-base/config-neutron.sh @@ -1,210 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -# Database -: ${NEUTRON_DB_NAME:=neutron} -: ${NEUTRON_DB_USER:=neutron} -: ${NEUTRON_DB_PASSWORD:=password} -# Keystone -: ${ADMIN_TENANT_NAME:=admin} -: ${NEUTRON_KEYSTONE_USER:=neutron} -: ${NEUTRON_KEYSTONE_PASSWORD:=password} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${KEYSTONE_ADMIN_SERVICE_HOST:=127.0.0.1} -: ${KEYSTONE_PUBLIC_SERVICE_HOST:=127.0.0.1} -: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357} -: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000} -: ${KEYSTONE_REGION:=RegionOne} -# RabbitMQ -: ${RABBIT_HOST:=$RABBITMQ_SERVICE_HOST} -: ${RABBIT_USER:=guest} -: ${RABBIT_PASSWORD:=guest} -# Logging -: ${VERBOSE_LOGGING:=true} -: ${DEBUG_LOGGING:=false} -# Networking -: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} -# Paste configuration file -: ${API_PASTE_CONFIG:=/usr/share/neutron/api-paste.ini} - -check_required_vars NEUTRON_KEYSTONE_PASSWORD NEUTRON_API_PASTE_CONFIG \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST - -core_cfg=/etc/neutron/neutron.conf -ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini - -# Logging -crudini --set $core_cfg \ - DEFAULT \ - log_dir \ - "${NEUTRON_LOG_DIR}" -crudini --set $core_cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $core_cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" - -# Paste config -crudini --set $core_cfg \ - DEFAULT \ - api_paste_config \ - "${NEUTRON_API_PASTE_CONFIG}" - -# Rabbit -crudini --set $core_cfg \ - DEFAULT \ - rabbit_host \ - "${RABBIT_HOST}" -crudini --set $core_cfg \ - DEFAULT \ - rabbit_userid \ - "${RABBIT_USER}" -crudini --set $core_cfg \ - DEFAULT \ - rabbit_password \ - "${RABBIT_PASSWORD}" - -# Locking -crudini --set $core_cfg \ - DEFAULT \ - lock_path \ - "/var/lock/neutron" - -# Keystone -crudini --set $core_cfg \ - DEFAULT \ - auth_strategy \ - "keystone" -crudini --set $core_cfg \ - keystone_authtoken \ - auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -crudini --set $core_cfg \ - keystone_authtoken \ - identity_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}" -crudini --set $core_cfg \ - keystone_authtoken \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $core_cfg \ - keystone_authtoken \ - admin_user \ - "${NEUTRON_KEYSTONE_USER}" -crudini --set $core_cfg \ - keystone_authtoken \ - admin_password \ - "${NEUTRON_KEYSTONE_PASSWORD}" - -# Rootwrap -crudini --set $core_cfg \ - agent \ - root_helper \ - "sudo neutron-rootwrap /etc/neutron/rootwrap.conf" - -# neutron.conf ml2 configuration -crudini --set $core_cfg \ - DEFAULT \ - core_plugin \ - "neutron.plugins.ml2.plugin.Ml2Plugin" -crudini --set $core_cfg \ - DEFAULT \ - service_plugins \ - "neutron.services.l3_router.l3_router_plugin.L3RouterPlugin" -crudini --set $core_cfg \ - DEFAULT \ - allow_overlapping_ips \ - "True" - -# Configure ml2_conf.ini -crudini --set $ml2_cfg \ - ml2 \ - type_drivers \ - "${TYPE_DRIVERS}" -crudini --set $ml2_cfg \ - ml2 \ - tenant_network_types \ - "${TENANT_NETWORK_TYPES}" -crudini --set $ml2_cfg \ - ml2 \ - mechanism_drivers \ - "${MECHANISM_DRIVERS}" - -if [[ ${TYPE_DRIVERS} =~ .*flat.* ]]; then - crudini --set $ml2_cfg \ - ml2_type_flat \ - flat_networks \ - ${NEUTRON_FLAT_NETWORK_NAME} -fi - -if [[ ${TYPE_DRIVERS} =~ .*vxlan.* ]]; then - crudini --set $ml2_cfg \ - ml2_type_vxlan \ - vxlan_group \ - "" - crudini --set $ml2_cfg \ - ml2_type_vxlan \ - vni_ranges \ - "1:1000" - crudini --set $ml2_cfg \ - vxlan \ - enable_vxlan \ - "True" - crudini --set $ml2_cfg \ - vxlan \ - vxlan_group \ - "" - crudini --set $ml2_cfg \ - vxlan \ - l2_population \ - "True" - crudini --set $ml2_cfg \ - agent \ - tunnel_types \ - "vxlan" - crudini --set $ml2_cfg \ - agent \ - vxlan_udp_port \ - "4789" - crudini --set $core_cfg \ - DEFAULT \ - network_device_mtu \ - "1450" -fi - -crudini --set $ml2_cfg \ - l2pop \ - agent_boot_time \ - "180" -crudini --set $ml2_cfg \ - securitygroup \ - enable_security_group \ - "True" -crudini --set $ml2_cfg \ - securitygroup \ - enable_ipset \ - "True" - -if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then - firewall_driver="neutron.agent.linux.iptables_firewall.IptablesFirewallDriver" -elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then - firewall_driver="neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver" -fi - -crudini --set $ml2_cfg \ - securitygroup \ - firewall_driver \ - "$firewall_driver" - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0" -export OS_USERNAME="${NEUTRON_KEYSTONE_USER}" -export OS_PASSWORD="${NEUTRON_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF +../../../../common/neutron/neutron-base/config-neutron.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-server/check.sh b/docker/centos/binary/neutron/neutron-server/check.sh index 4e9aa623c..001936616 100755..120000 --- a/docker/centos/binary/neutron/neutron-server/check.sh +++ b/docker/centos/binary/neutron/neutron-server/check.sh @@ -1,17 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! neutron ext-list > /dev/null; then - echo "ERROR: neutron ext-list failed" >&2 - RES=1 - fi -fi - -exit $RES - +../../../../common/neutron/neutron-server/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-server/start.sh b/docker/centos/binary/neutron/neutron-server/start.sh index fb971083f..a11ea7703 100755..120000 --- a/docker/centos/binary/neutron/neutron-server/start.sh +++ b/docker/centos/binary/neutron/neutron-server/start.sh @@ -1,98 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh - -: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} -: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \ - NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ - NEUTRON_DB_NAME NEUTRON_DB_USER NEUTRON_DB_PASSWORD \ - NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \ - PUBLIC_IP NEUTRON_DB_PASSWORD -fail_unless_os_service_running keystone -fail_unless_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${NEUTRON_DB_NAME} DEFAULT CHARACTER SET utf8; -GRANT ALL PRIVILEGES ON ${NEUTRON_DB_NAME}.* TO - '${NEUTRON_DB_USER}'@'%' IDENTIFIED BY '${NEUTRON_DB_PASSWORD}' - -EOF - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -# Configure Keystone Service Catalog -crux user-create -n "${NEUTRON_KEYSTONE_USER}" \ - -p "${NEUTRON_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create -n neutron -t network \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT}" - -core_cfg=/etc/neutron/neutron.conf -ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini - -# Logging -crudini --set /etc/neutron/neutron.conf \ - DEFAULT \ - log_file \ - "${NEUTRON_SERVER_LOG_FILE}" - -# Database -crudini --set $core_cfg \ - database \ - connection \ - "mysql://${NEUTRON_DB_USER}:${NEUTRON_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${NEUTRON_DB_NAME}" -# Nova -crudini --set $core_cfg \ - DEFAULT \ - notify_nova_on_port_status_changes \ - "True" -crudini --set $core_cfg \ - DEFAULT \ - notify_nova_on_port_data_changes \ - "True" -crudini --set $core_cfg \ - DEFAULT \ - nova_url \ - "http://${NOVA_API_SERVICE_HOST}:${NOVA_API_SERVICE_PORT}/v2" -crudini --set $core_cfg \ - DEFAULT \ - nova_admin_auth_url \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" -crudini --set $core_cfg \ - DEFAULT \ - nova_region_name \ - "${KEYSTONE_REGION}" -crudini --set $core_cfg \ - DEFAULT \ - nova_admin_username \ - "${NOVA_KEYSTONE_USER}" -crudini --set $core_cfg \ - DEFAULT \ - nova_admin_tenant_id \ - "$(keystone tenant-list | grep $ADMIN_TENANT_NAME | awk '{print $2;}')" -crudini --set $core_cfg \ - DEFAULT \ - nova_admin_password \ - "${NOVA_KEYSTONE_PASSWORD}" - -if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then - crudini --set $ml2_cfg \ - linux_bridge \ - physical_interface_mappings \ - "${NEUTRON_FLAT_NETWORK_NAME}:${NEUTRON_FLAT_NETWORK_INTERFACE}" -fi - -su -s /bin/bash -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron - -exec /usr/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini +../../../../common/neutron/neutron-server/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-base/config-nova.sh b/docker/centos/binary/nova-base/config-nova.sh index 8789a14a5..32efe6056 100755..120000 --- a/docker/centos/binary/nova-base/config-nova.sh +++ b/docker/centos/binary/nova-base/config-nova.sh @@ -1,137 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh - -: ${NOVA_DB_USER:=nova} -: ${NOVA_DB_NAME:=nova} -: ${NOVA_KEYSTONE_USER:=admin} -: ${NOVA_KEYSTONE_PASSWORD:=kolla} -: ${ADMIN_TENANT_NAME:=admin} -: ${RABBIT_USERID:=guest} -: ${RABBIT_PASSWORD:=guest} -: ${NETWORK_MANAGER:=nova} -: ${FLAT_NETWORK:=eth1} -: ${PUBLIC_NETWORK:=eth0} -: ${ENABLED_APIS:=ec2,osapi_compute,metadata} -: ${METADATA_HOST:=$PUBLIC_IP} -: ${NEUTRON_SHARED_SECRET:=sharedsecret} - -check_required_vars KEYSTONE_ADMIN_TOKEN NOVA_DB_PASSWORD \ - RABBITMQ_SERVICE_HOST GLANCE_API_SERVICE_HOST \ - KEYSTONE_PUBLIC_SERVICE_HOST PUBLIC_IP \ - PUBLIC_INTERFACE FLAT_INTERFACE DEBUG_LOGGING \ - VERBOSE_LOGGING - -cfg=/etc/nova/nova.conf - -crudini --set $cfg DEFAULT amqp_durable_queues False -crudini --set $cfg DEFAULT rabbit_host ${RABBITMQ_SERVICE_HOST} -crudini --set $cfg DEFAULT rabbit_port 5672 -crudini --set $cfg DEFAULT rabbit_hosts ${RABBITMQ_SERVICE_HOST}:5672 -crudini --set $cfg DEFAULT rabbit_use_ssl False -crudini --set $cfg DEFAULT rabbit_userid ${RABBIT_USERID} -crudini --set $cfg DEFAULT rabbit_password "${RABBIT_PASSWORD}" -crudini --set $cfg DEFAULT rabbit_virtual_host / -crudini --set $cfg DEFAULT rabbit_ha_queues False -crudini --set $cfg DEFAULT rpc_backend nova.openstack.common.rpc.impl_kombu -crudini --set $cfg DEFAULT enabled_apis ${ENABLED_APIS} -crudini --set $cfg DEFAULT ec2_listen 0.0.0.0 -crudini --set $cfg DEFAULT osapi_compute_listen 0.0.0.0 -crudini --set $cfg DEFAULT osapi_compute_workers 8 -crudini --set $cfg DEFAULT metadata_host ${METADATA_HOST} -crudini --set $cfg DEFAULT metadata_listen 0.0.0.0 -crudini --set $cfg DEFAULT metadata_workers 8 -crudini --set $cfg DEFAULT service_down_time 60 -crudini --set $cfg DEFAULT rootwrap_config /etc/nova/rootwrap.conf -crudini --set $cfg DEFAULT auth_strategy keystone -crudini --set $cfg DEFAULT use_forwarded_for False -crudini --set $cfg DEFAULT glance_api_servers ${GLANCE_API_SERVICE_HOST}:9292 -crudini --set $cfg DEFAULT cpu_allocation_ratio 16.0 -crudini --set $cfg DEFAULT ram_allocation_ratio 1.5 -crudini --set $cfg DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,CoreFilter -crudini --set $cfg DEFAULT compute_driver nova.virt.libvirt.LibvirtDriver -crudini --set $cfg DEFAULT vif_plugging_is_fatal True -crudini --set $cfg DEFAULT vif_plugging_timeout 300 -crudini --set $cfg DEFAULT volume_api_class nova.volume.cinder.API -crudini --set $cfg DEFAULT image_service nova.image.glance.GlanceImageService -crudini --set $cfg DEFAULT osapi_volume_listen 0.0.0.0 -crudini --set $cfg DEFAULT instances_path /var/lib/nova/instances -crudini --set $cfg DEFAULT lock_path /var/lib/nova/lock - -# This is not created by openstack-nova packaging -mkdir -p /var/lib/nova/lock - -# configure logging -crudini --set $cfg DEFAULT log_dir "${NOVA_LOG_DIR}" -crudini --set $cfg DEFAULT debug "${DEBUG_LOGGING}" -crudini --set $cfg DEFAULT verbose "${VERBOSE_LOGGING}" - -crudini --set $cfg DEFAULT admin_token "${KEYSTONE_ADMIN_TOKEN}" - -crudini --set $cfg conductor workers 8 - -if [ "${NETWORK_MANAGER}" == "nova" ] ; then - crudini --set $cfg DEFAULT network_manager nova.network.manager.FlatDHCPManager - crudini --set $cfg DEFAULT firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver - crudini --set $cfg DEFAULT network_size 254 - crudini --set $cfg DEFAULT allow_same_net_traffic False - crudini --set $cfg DEFAULT multi_host True - crudini --set $cfg DEFAULT send_arp_for_ha True - crudini --set $cfg DEFAULT share_dhcp_address True - crudini --set $cfg DEFAULT force_dhcp_release True - crudini --set $cfg DEFAULT flat_interface $FLAT_INTERFACE - crudini --set $cfg DEFAULT flat_network_bridge br100 - crudini --set $cfg DEFAULT public_interface $PUBLIC_INTERFACE -elif [ "${NETWORK_MANAGER}" == "neutron" ] ; then - check_required_vars NEUTRON_SHARED_SECRET - crudini --set $cfg neutron service_metadata_proxy True - crudini --set $cfg neutron metadata_proxy_shared_secret ${NEUTRON_SHARED_SECRET} - crudini --set $cfg DEFAULT neutron_default_tenant_id default - crudini --set $cfg DEFAULT network_api_class nova.network.neutronv2.api.API - crudini --set $cfg DEFAULT security_group_api neutron - if [[ "${MECHANISM_DRIVERS}" =~ linuxbridge ]] ; then - crudini --set $cfg DEFAULT linuxnet_interface_driver nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver - elif [[ "${MECHANISM_DRIVERS}" =~ openvswitch ]] ; then - crudini --set $cfg DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver - fi - crudini --set $cfg DEFAULT libvirt_vif_driver nova.virt.libvirt.vif.LibvirtGenericVIFDriver - crudini --set $cfg DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver - crudini --set $cfg neutron url http://${NEUTRON_SERVER_SERVICE_HOST}:${NEUTRON_SERVER_SERVICE_PORT} - crudini --set $cfg neutron auth_strategy keystone - crudini --set $cfg neutron admin_auth_url ${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0 - crudini --set $cfg neutron admin_tenant_name ${ADMIN_TENANT_NAME} - crudini --set $cfg neutron admin_username ${NEUTRON_KEYSTONE_USER} - crudini --set $cfg neutron admin_password ${NEUTRON_KEYSTONE_PASSWORD} -else - echo "Incorrect NETWORK_MANAGER ${NETWORK_MANAGER}. Supported options are nova and neutron." - exit 1 -fi - -# disabled pending answers to http://lists.openstack.org/pipermail/openstack/2014-October/009997.html -#for option in auth_protocol auth_host auth_port; do -# crudini --del $cfg \ -# keystone_authtoken \ -# $option -#done - -crudini --set $cfg keystone_authtoken auth_uri "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/" -crudini --set $cfg keystone_authtoken auth_protocol http -crudini --set $cfg keystone_authtoken auth_host ${KEYSTONE_PUBLIC_SERVICE_HOST} -crudini --set $cfg keystone_authtoken auth_port 5000 - -crudini --set $cfg keystone_authtoken admin_user ${NOVA_KEYSTONE_USER} -crudini --set $cfg keystone_authtoken admin_password "${NOVA_KEYSTONE_PASSWORD}" -crudini --set $cfg keystone_authtoken admin_tenant_name ${ADMIN_TENANT_NAME} - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -export OS_USERNAME="${NOVA_KEYSTONE_USER}" -export OS_PASSWORD="${NOVA_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -# Configure database connection -crudini --set $cfg \ - database \ - connection \ - "mysql://${NOVA_DB_USER}:${NOVA_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${NOVA_DB_NAME}" +../../../common/nova-base/config-nova.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh b/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh index 9a2c12572..0f3c1216c 100755..120000 --- a/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh +++ b/docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh @@ -1,28 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-nova.sh - -cfg=/etc/nova/nova.conf - -check_required_vars NOVA_VNCSERVER_PROXYCLIENT_ADDRESS NOVA_NOVNC_PROXY_PORT \ - NOVA_NOVNC_BASE_ADDRESS - -# Configures novnc to listen on all interfaces and instructs nova-compute to -# announce PROXYCLIENT_IP to the nova-vncproxy. Clients like Horizon will -# connect with this address. -# As such, NOVA_VNCSERVER_PROXYCLIENT_ADDRESS is unique per compute node. -crudini --set $cfg DEFAULT vnc_enabled "True" -crudini --set $cfg DEFAULT vncserver_listen "0.0.0.0" -crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_VNCSERVER_PROXYCLIENT_ADDRESS}" -crudini --set $cfg DEFAULT novncproxy_base_url "http://${NOVA_NOVNC_BASE_ADDRESS}:${NOVA_NOVNC_PROXY_PORT}/vnc_auto.html" - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_COMPUTE_LOG_FILE}" - -# set qmeu emulation if no hardware acceleration found -if [[ `egrep -c '(vmx|svm)' /proc/cpuinfo` == 0 ]]; then - crudini --set $cfg libvirt virt_type qemu -fi - -mkdir -p /var/lib/nova/instances +../../../../common/nova-compute/nova-compute/config-nova-compute.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-compute/nova-compute/start.sh b/docker/centos/binary/nova-compute/nova-compute/start.sh index ce3d0c0c3..ef5d32f18 100755..120000 --- a/docker/centos/binary/nova-compute/nova-compute/start.sh +++ b/docker/centos/binary/nova-compute/nova-compute/start.sh @@ -1,10 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova-compute.sh - -sleep 6 - -echo "Starting nova-compute." -exec /usr/bin/nova-compute --config-file /etc/nova/nova.conf +../../../../common/nova-compute/nova-compute/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-compute/nova-libvirt/start.sh b/docker/centos/binary/nova-compute/nova-libvirt/start.sh index bdbe882b8..eac909978 100755..120000 --- a/docker/centos/binary/nova-compute/nova-libvirt/start.sh +++ b/docker/centos/binary/nova-compute/nova-libvirt/start.sh @@ -1,22 +1 @@ -#!/bin/bash - -if [[ $(cat /proc/cpuinfo | grep vmx) ]]; then - modprobe kvm_intel -elif [[ $(cat /proc/cpuinfo | grep svm) ]]; then - modprobe kvm_amd -else - echo "WARNING: Your hardware does not support hardware virtualization -" \ - "using qemu software virtualization instead" -fi - -modprobe ip6_tables ip_tables ebtable_nat - -# If libvirt is not installed on the host permissions need to be set -# If running in qemu, we don't need to set anything as /dev/kvm won't exist -if [[ -c /dev/kvm ]]; then - chmod 660 /dev/kvm - chown root:kvm /dev/kvm -fi - -echo "Starting libvirtd." -exec /usr/sbin/libvirtd +../../../../common/nova-compute/nova-libvirt/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh b/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh index 6976d3a20..ed1af588e 100755..120000 --- a/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh +++ b/docker/centos/binary/nova-compute/nova-network/config-nova-network.sh @@ -1,30 +1 @@ -#!/bin/bash - -. /opt/kolla/config-nova.sh - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_NETWORK_LOG_FILE}" - -# Configure eth1 as a physcial interface for nova flat network -cat > /etc/sysconfig/network-scripts/ifcfg-$FLAT_INTERFACE <<EOF -DEVICE="$FLAT_INTERFACE" -BOOTPROTO="none" -ONBOOT="yes" -TYPE="Ethernet" -EOF - -/usr/sbin/ifup $FLAT_INTERFACE - -cfg=/etc/nova/nova.conf - -crudini --set $cfg DEFAULT network_manager nova.network.manager.FlatDHCPManager -crudini --set $cfg DEFAULT firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriver -crudini --set $cfg DEFAULT network_size 254 -crudini --set $cfg DEFAULT allow_same_net_traffic False -crudini --set $cfg DEFAULT multi_host True -crudini --set $cfg DEFAULT send_arp_for_ha True -crudini --set $cfg DEFAULT share_dhcp_address True -crudini --set $cfg DEFAULT force_dhcp_release True -crudini --set $cfg DEFAULT flat_network_bridge br100 +../../../../common/nova-compute/nova-network/config-nova-network.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-compute/nova-network/start.sh b/docker/centos/binary/nova-compute/nova-network/start.sh index 92381b720..f2bec1979 100755..120000 --- a/docker/centos/binary/nova-compute/nova-network/start.sh +++ b/docker/centos/binary/nova-compute/nova-network/start.sh @@ -1,8 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova-network.sh - -# Start nova-network -exec /usr/bin/nova-network --config-file /etc/nova/nova.conf +../../../../common/nova-compute/nova-network/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-api/check.sh b/docker/centos/binary/nova-controller/nova-api/check.sh index b250682d8..2a047038e 100755..120000 --- a/docker/centos/binary/nova-controller/nova-api/check.sh +++ b/docker/centos/binary/nova-controller/nova-api/check.sh @@ -1,17 +1 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! nova list > /dev/null; then - echo "ERROR: nova list failed" >&2 - RES=1 - fi -fi - -exit $RES - +../../../../common/nova-controller/nova-api/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-api/start.sh b/docker/centos/binary/nova-controller/nova-api/start.sh index 7928370a4..7613d713a 100755..120000 --- a/docker/centos/binary/nova-controller/nova-api/start.sh +++ b/docker/centos/binary/nova-controller/nova-api/start.sh @@ -1,46 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \ - NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME -fail_unless_os_service_running keystone -fail_unless_db $NOVA_DB_NAME - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_API_LOG_FILE}" - -crux user-create --update \ - -n "${NOVA_KEYSTONE_USER}" \ - -p "${NOVA_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create --remove-all \ - -n ec2 -t ec2 \ - -I "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Cloud" \ - -P "http://${PUBLIC_IP}:8773/services/Cloud" \ - -A "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Admin" - -crux endpoint-create --remove-all \ - -n nova -t compute \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" \ - -P "http://${PUBLIC_IP}:8774/v2/\$(tenant_id)s" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" - -crux endpoint-create --remove-all \ - -n novav3 -t computev3 \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v3" \ - -P "http://${PUBLIC_IP}:8774/v3" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v3" - -exec /usr/bin/nova-api --config-file /etc/nova/nova.conf +../../../../common/nova-controller/nova-api/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-conductor/start.sh b/docker/centos/binary/nova-controller/nova-conductor/start.sh index 575e7ff6c..2b0dc28f8 100755..120000 --- a/docker/centos/binary/nova-controller/nova-conductor/start.sh +++ b/docker/centos/binary/nova-controller/nova-conductor/start.sh @@ -1,23 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova.sh - -check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD -fail_unless_db - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_CONDUCTOR_LOG_FILE}" - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME}; -GRANT ALL PRIVILEGES ON ${NOVA_DB_NAME}.* TO - '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}' -EOF - -nova-manage db sync - -exec /usr/bin/nova-conductor --config-file /etc/nova/nova.conf +../../../../common/nova-controller/nova-conductor/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-consoleauth/start.sh b/docker/centos/binary/nova-controller/nova-consoleauth/start.sh index a1b0864ac..0821b3c38 100755..120000 --- a/docker/centos/binary/nova-controller/nova-consoleauth/start.sh +++ b/docker/centos/binary/nova-controller/nova-consoleauth/start.sh @@ -1,11 +1 @@ -#!/bin/bash -set -e - -. /opt/kolla/config-nova.sh - -cfg=/etc/nova/nova.conf - -crudini --set $cfg DEFAULT log_file "${NOVA_CONSOLEAUTH_LOG_FILE}" - -echo Starting nova-consoleauth -exec /usr/bin/nova-consoleauth +../../../../common/nova-controller/nova-consoleauth/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-novncproxy/start.sh b/docker/centos/binary/nova-controller/nova-novncproxy/start.sh index 9edafbca3..80b6459a4 100755..120000 --- a/docker/centos/binary/nova-controller/nova-novncproxy/start.sh +++ b/docker/centos/binary/nova-controller/nova-novncproxy/start.sh @@ -1,22 +1 @@ -#!/bin/bash -set -e -. /opt/kolla/kolla-common.sh - -cfg=/etc/nova/nova.conf - -check_required_vars PUBLIC_IP NOVA_NOVNC_PROXY_SERVICE_HOST NOVA_NOVNC_PROXY_PORT \ - NOVA_NOVNC_BASE_ADDRESS NOVA_VNCSERVER_LISTEN_ADDRESS \ - NOVA_VNCSERVER_PROXYCLIENT_ADDRESS - -crudini --set $cfg DEFAULT log_file "${NOVA_NOVNCPROXY_LOG_FILE}" - -# Listen on all interfaces on port $NOVA_NOVNC_PROXY_PORT for incoming novnc -# requests. -# The base_url is given to clients to connect to, like Horizon, so this could -# very well be fancy DNS name. -echo Configuring VNC... -crudini --set $cfg DEFAULT vncserver_listen "${NOVA_VNCSERVER_LISTEN_ADDRESS}" -crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_VNCSERVER_PROXYCLIENT_ADDRESS}" - -echo Starting nova-novncproxy -exec /usr/bin/nova-novncproxy +../../../../common/nova-controller/nova-novncproxy/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-scheduler/start.sh b/docker/centos/binary/nova-controller/nova-scheduler/start.sh index 504c049ed..a72115139 100755..120000 --- a/docker/centos/binary/nova-controller/nova-scheduler/start.sh +++ b/docker/centos/binary/nova-controller/nova-scheduler/start.sh @@ -1,15 +1 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova.sh - -check_required_vars NOVA_DB_NAME -fail_unless_db $NOVA_DB_NAME - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_SCHEDULER_LOG_FILE}" - -exec /usr/bin/nova-scheduler --config-file /etc/nova/nova.conf +../../../../common/nova-controller/nova-scheduler/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/rabbitmq-env.conf b/docker/centos/binary/rabbitmq/rabbitmq-env.conf index e76f18f0b..af9f8525e 100644..120000 --- a/docker/centos/binary/rabbitmq/rabbitmq-env.conf +++ b/docker/centos/binary/rabbitmq/rabbitmq-env.conf @@ -1,2 +1 @@ -RABBITMQ_NODENAME=@RABBITMQ_NODENAME@ -RABBITMQ_LOG_BASE=@RABBITMQ_LOG_BASE@ +../../../common/rabbitmq/rabbitmq-env.conf
\ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/rabbitmq.config b/docker/centos/binary/rabbitmq/rabbitmq.config index 15a47eba1..cfb088507 100644..120000 --- a/docker/centos/binary/rabbitmq/rabbitmq.config +++ b/docker/centos/binary/rabbitmq/rabbitmq.config @@ -1,11 +1 @@ -[ - {rabbit, [ - {default_user, <<"@RABBITMQ_USER@">>}, - {default_pass, <<"@RABBITMQ_PASS@">>} - ]}, - {kernel, [ - - ]} -]. -% EOF - +../../../common/rabbitmq/rabbitmq.config
\ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/start.sh b/docker/centos/binary/rabbitmq/start.sh index f70c34866..035f55e26 100755..120000 --- a/docker/centos/binary/rabbitmq/start.sh +++ b/docker/centos/binary/rabbitmq/start.sh @@ -1,24 +1 @@ -#!/bin/bash - -set -e - -: ${RABBITMQ_USER:=guest} -: ${RABBITMQ_PASS:=guest} -: ${RABBITMQ_NODENAME:=rabbit} -: ${RABBITMQ_LOG_BASE:=/var/log/rabbitmq} - -sed -i ' - s|@RABBITMQ_USER@|'"$RABBITMQ_USER"'|g - s|@RABBITMQ_PASS@|'"$RABBITMQ_PASS"'|g -' /etc/rabbitmq/rabbitmq.config - -sed -i ' - s|@RABBITMQ_NODENAME@|'"$RABBITMQ_NODENAME"'|g - s|@RABBITMQ_LOG_BASE@|'"$RABBITMQ_LOG_BASE"'|g -' /etc/rabbitmq/rabbitmq-env.conf - -# work around: -# https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405 -echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts - -exec /usr/sbin/rabbitmq-server +../../../common/rabbitmq/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/swift/swift-account/start.sh b/docker/centos/binary/swift/swift-account/start.sh index bf86830f9..f9e76aa5b 100644..120000 --- a/docker/centos/binary/swift/swift-account/start.sh +++ b/docker/centos/binary/swift/swift-account/start.sh @@ -1,34 +1 @@ -#!/bin/bash - -: ${SWIFT_DB_USER:=swift} -: ${SWIFT_DB_NAME:=swift} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${SWIFT_KEYSTONE_USER:=swift} -: ${ADMIN_TENANT_NAME:=admin} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - SWIFT_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -if ! [ "$SWIFT_DB_PASSWORD" ]; then - SWIFT_DB_PASSWORD=$(openssl rand -hex 15) - export SWIFT_DB_PASSWORD -fi - -sh /opt/swift/config-swift.sh account-server - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME}; -GRANT ALL PRIVILEGES ON swift* TO -'${SWIFT_DB_USER}'@'%' IDENTIFIED BY '${SWIFT_DB_PASSWORD}' -EOF - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -/bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD} -/bin/keystone role-create --name ${SWIFT_KEYSTONE_USER} -/bin/keystone user-role-add --user ${SWIFT_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -exec /usr/bin/swift-engine +../../../../common/swift/swift-account/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/swift/swift-container/start.sh b/docker/centos/binary/swift/swift-container/start.sh index 42d4ccf35..dc3c88490 100644..120000 --- a/docker/centos/binary/swift/swift-container/start.sh +++ b/docker/centos/binary/swift/swift-container/start.sh @@ -1,34 +1 @@ -#!/bin/bash - -: ${SWIFT_DB_USER:=swift} -: ${SWIFT_DB_NAME:=swift} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${SWIFT_KEYSTONE_USER:=swift} -: ${ADMIN_TENANT_NAME:=admin} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - SWIFT_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -if ! [ "$SWIFT_DB_PASSWORD" ]; then - SWIFT_DB_PASSWORD=$(openssl rand -hex 15) - export SWIFT_DB_PASSWORD -fi - -sh /opt/swift/config-swift.sh container - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME}; -GRANT ALL PRIVILEGES ON swift* TO -'${SWIFT_DB_USER}'@'%' IDENTIFIED BY '${SWIFT_DB_PASSWORD}' -EOF - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -/bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD} -/bin/keystone role-create --name ${SWIFT_KEYSTONE_USER} -/bin/keystone user-role-add --user ${SWIFT_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -exec /usr/bin/swift-container-server +../../../../common/swift/swift-container/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/swift/swift-object/start.sh b/docker/centos/binary/swift/swift-object/start.sh index 7ed97536e..690be2540 100644..120000 --- a/docker/centos/binary/swift/swift-object/start.sh +++ b/docker/centos/binary/swift/swift-object/start.sh @@ -1,34 +1 @@ -#!/bin/bash - -: ${SWIFT_DB_USER:=swift} -: ${SWIFT_DB_NAME:=swift} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${SWIFT_KEYSTONE_USER:=swift} -: ${ADMIN_TENANT_NAME:=admin} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - SWIFT_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -if ! [ "$SWIFT_DB_PASSWORD" ]; then - SWIFT_DB_PASSWORD=$(openssl rand -hex 15) - export SWIFT_DB_PASSWORD -fi - -sh /opt/swift/config-swift.sh engine - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME}; -GRANT ALL PRIVILEGES ON swift* TO -'${SWIFT_DB_USER}'@'%' IDENTIFIED BY '${SWIFT_DB_PASSWORD}' -EOF - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -/bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD} -/bin/keystone role-create --name ${SWIFT_KEYSTONE_USER} -/bin/keystone user-role-add --user ${SWIFT_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -exec /usr/bin/swift-object-server +../../../../common/swift/swift-object/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/swift/swift-proxy-server/start.sh b/docker/centos/binary/swift/swift-proxy-server/start.sh index 3f387d187..6a5581a46 100644..120000 --- a/docker/centos/binary/swift/swift-proxy-server/start.sh +++ b/docker/centos/binary/swift/swift-proxy-server/start.sh @@ -1,5 +1 @@ -#!/bin/bash - -sh /opt/swift/config-swift.sh proxy - -exec /usr/bin/swift-proxy-server +../../../../common/swift/swift-proxy-server/start.sh
\ No newline at end of file diff --git a/docker/centos/binary/zaqar/check.sh b/docker/centos/binary/zaqar/check.sh index 4b3cdbb46..48c775659 100755..120000 --- a/docker/centos/binary/zaqar/check.sh +++ b/docker/centos/binary/zaqar/check.sh @@ -1,10 +1 @@ -#!/bin/bash - -status=$(curl -s -w "%{http_code}" -o /dev/null http://localhost:8888/v1/queues) - -if [[ $status -ne 200 && $status -ne 204 ]]; then - echo "ERROR($status): queue list failed" - exit $status -fi - -exit 0 +../../../common/zaqar/check.sh
\ No newline at end of file diff --git a/docker/centos/binary/zaqar/start.sh b/docker/centos/binary/zaqar/start.sh index 6c68fccf2..48134a044 100755..120000 --- a/docker/centos/binary/zaqar/start.sh +++ b/docker/centos/binary/zaqar/start.sh @@ -1,64 +1 @@ -#!/bin/sh - -set -e - -. /opt/kolla/kolla-common.sh - -: ${ADMIN_TENANT_NAME:=admin} -: ${ZAQAR_KEYSTONE_USER:=zaqar} -: ${KEYSTONE_AUTH_PROTOCOL:=http} - -check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_TOKEN \ - PUBLIC_IP -dump_vars - -#check_for_mongodb -check_for_keystone - -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -export OS_USERNAME="${ZAQAR_KEYSTONE_USER}" -export OS_PASSWORD="${ZAQAR_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -cfg=/etc/zaqar/zaqar.conf - -crudini --set $cfg DEFAULT log_file \ - "" -crudini --set $cfg DEFAULT use_stderr \ - true - -crudini --set $cfg drivers storage \ - sqlite - -crudini --set $cfg keystone_authtoken admin_password \ - "${ZAQAR_KEYSTONE_PASSWORD}" -crudini --set $cfg keystone_authtoken admin_user \ - "${ZAQAR_KEYSTONE_USER}" -crudini --set $cfg keystone_authtoken admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg keystone_authtoken auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -crudini --set $cfg keystone_authtoken auth_protocol \ - "${KEYSTONE_AUTH_PROTOCOL}" -crudini --set $cfg keystone_authtoken auth_host \ - "${KEYSTONE_PUBLIC_SERVICE_HOST}" -crudini --set $cfg keystone_authtoken auth_port \ - 5000 - - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" -crux user-create -n ${ZAQAR_KEYSTONE_USER} \ - -p ${ZAQAR_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${ZAQAR_KEYSTONE_USER} -t messaging \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8888" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" - -exec /usr/bin/zaqar-server +../../../common/zaqar/start.sh
\ No newline at end of file |
