83 lines
2.2 KiB
Bash
Executable File
83 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ -z $OS_AUTH_URL ]]; then
|
|
echo "This script must have proper environment variables exported. "
|
|
echo "Please check if you have sourced senlinrc file or openrc file if "
|
|
echo "you are using devstack."
|
|
exit -1
|
|
fi
|
|
|
|
if [ $OS_USERNAME != 'admin' ]; then
|
|
echo "This script has to be executed as an 'admin' user. "
|
|
echo "Please set environment variable OS_USERNAME to 'admin'."
|
|
exit -1
|
|
fi
|
|
|
|
if [ $# -ne 2 ]; then
|
|
echo "Usage: `basename $0` <HOST_IP> <SERVICE_PASSWORD>"
|
|
exit -1
|
|
fi
|
|
|
|
PORT=8777
|
|
HOST=$1 # Put your host IP here
|
|
SVC_PASSWD=$2
|
|
OS_REGION_NAME=${OS_REGION_NAME:-RegionOne}
|
|
OS_IDENTITY_API_VERSION=${OS_IDENTITY_API_VERSION:-3}
|
|
SERVICE_PROJECT=${OS_SERVICE_PROJECT:-service}
|
|
SERVICE_ROLE=${OS_SERVICE_ROLE:-service}
|
|
|
|
SERVICE_ID=$(openstack service show senlin -f value -cid 2>/dev/null)
|
|
if [[ -z $SERVICE_ID ]]; then
|
|
SERVICE_ID=$(openstack service create \
|
|
--name senlin \
|
|
--description 'Senlin Clustering Service V1' \
|
|
-f value -cid \
|
|
clustering)
|
|
fi
|
|
|
|
if [[ -z $SERVICE_ID ]]; then
|
|
exit
|
|
fi
|
|
|
|
if [ "$OS_IDENTITY_API_VERSION" = "3" ]; then
|
|
openstack endpoint create senlin admin "http://$HOST:$PORT" \
|
|
--region $OS_REGION_NAME
|
|
openstack endpoint create senlin public "http://$HOST:$PORT" \
|
|
--region $OS_REGION_NAME
|
|
openstack endpoint create senlin internal "http://$HOST:$PORT" \
|
|
--region $OS_REGION_NAME
|
|
else
|
|
openstack endpoint create \
|
|
--adminurl "http://$HOST:$PORT" \
|
|
--publicurl "http://$HOST:$PORT" \
|
|
--internalurl "http://$HOST:$PORT" \
|
|
--region $OS_REGION_NAME \
|
|
senlin
|
|
fi
|
|
|
|
# Check service project name.
|
|
# Devstack uses 'service' while some distributions use 'services'
|
|
PROJECT_ID=$(openstack project show service -f value -cid 2>/dev/null)
|
|
if [[ -z $PROJECT_ID ]]; then
|
|
SERVICE_PROJECT=services
|
|
SERVICE_ROLE=services
|
|
openstack role create $SERVICE_ROLE
|
|
fi
|
|
|
|
openstack user create \
|
|
--password "$SVC_PASSWD" \
|
|
--project $SERVICE_PROJECT \
|
|
--email senlin@localhost \
|
|
senlin
|
|
|
|
openstack role add \
|
|
admin \
|
|
--user senlin \
|
|
--project $SERVICE_PROJECT
|
|
|
|
# make sure 'senlin' has service role on 'demo' project
|
|
openstack role add \
|
|
$SERVICE_ROLE \
|
|
--user senlin \
|
|
--project demo
|