68 lines
3.5 KiB
Bash
Executable File
68 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Keystone Endpoints
|
|
#
|
|
# Description: Create Services Endpoints
|
|
|
|
# Mainly inspired by http://www.hastexo.com/resources/docs/installing-openstack-essex-20121-ubuntu-1204-precise-pangolin
|
|
# Written by Martin Gerhard Loschwitz / Hastexo
|
|
# Modified by Emilien Macchi / StackOps
|
|
#
|
|
# Support: openstack@lists.launchpad.net
|
|
# License: Apache Software License (ASL) 2.0
|
|
#
|
|
source $(dirname $0)/defaults
|
|
|
|
# MySQL definitions
|
|
MYSQL_USER=keystone
|
|
MYSQL_DATABASE=keystone
|
|
MYSQL_HOST=localhost
|
|
|
|
# Keystone definitions
|
|
KEYSTONE_REGION=RegionOne
|
|
export SERVICE_TOKEN=password
|
|
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
|
|
|
|
keystone service-create --name nova --type compute --description 'OpenStack Compute Service'
|
|
keystone service-create --name cinder --type volume --description 'OpenStack Volume Service'
|
|
keystone service-create --name glance --type image --description 'OpenStack Image Service'
|
|
keystone service-create --name swift --type object-store --description 'OpenStack Storage Service'
|
|
keystone service-create --name keystone --type identity --description 'OpenStack Identity'
|
|
keystone service-create --name ec2 --type ec2 --description 'OpenStack EC2 service'
|
|
keystone service-create --name quantum --type network --description 'OpenStack Networking service'
|
|
|
|
create_endpoint () {
|
|
case $1 in
|
|
compute)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"${HOST_IP}"':8774/v2/$(tenant_id)s' --adminurl 'http://'"$HOST_IP"':8774/v2/$(tenant_id)s' --internalurl 'http://'"$HOST_IP"':8774/v2/$(tenant_id)s'
|
|
;;
|
|
volume)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':8776/v1/$(tenant_id)s' --adminurl 'http://'"$HOST_IP"':8776/v1/$(tenant_id)s' --internalurl 'http://'"$HOST_IP"':8776/v1/$(tenant_id)s'
|
|
;;
|
|
image)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':9292/v2' --adminurl 'http://'"$HOST_IP"':9292/v2' --internalurl 'http://'"$HOST_IP"':9292/v2'
|
|
;;
|
|
object-store)
|
|
if [ $SWIFT_HOST_IP ]; then
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$SWIFT_HOST_IP"':8080/v1/AUTH_$(tenant_id)s' --adminurl 'http://'"$SWIFT_HOST_IP"':8080/v1' --internalurl 'http://'"$SWIFT_HOST_IP"':8080/v1/AUTH_$(tenant_id)s'
|
|
else
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':8080/v1/AUTH_$(tenant_id)s' --adminurl 'http://'"$HOST_IP"':8080/v1' --internalurl 'http://'"$HOST_IP"':8080/v1/AUTH_$(tenant_id)s'
|
|
fi
|
|
;;
|
|
identity)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':5000/v2.0' --adminurl 'http://'"$HOST_IP"':35357/v2.0' --internalurl 'http://'"$HOST_IP"':5000/v2.0'
|
|
;;
|
|
ec2)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':8773/services/Cloud' --adminurl 'http://'"$HOST_IP"':8773/services/Admin' --internalurl 'http://'"$HOST_IP"':8773/services/Cloud'
|
|
;;
|
|
network)
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $2 --publicurl 'http://'"$HOST_IP"':9696/' --adminurl 'http://'"$HOST_IP"':9696/' --internalurl 'http://'"$HOST_IP"':9696/'
|
|
;;
|
|
esac
|
|
}
|
|
|
|
for i in compute volume image object-store identity ec2 network; do
|
|
id=`mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_KEYSTONEPASS" "$MYSQL_DATABASE" -ss -e "SELECT id FROM service WHERE type='"$i"';"` || exit 1
|
|
create_endpoint $i $id
|
|
done
|