Last active
December 15, 2015 20:19
-
-
Save chmouel/5317916 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -x | |
set -e | |
# SET THIS | |
SERVICE_HOST= | |
SERVICE_PROTOCOL= | |
ADMIN_PASSWORD= | |
SWIFT_SERVICE_PASSWORD= | |
[[ -e ~/.l.sh ]] && source ~/.l.sh | |
SERVICE_TENANT_NAME=services | |
KEYSTONE_AUTH_HOST=${KEYSTONE_AUTH_HOST:-$SERVICE_HOST} | |
KEYSTONE_AUTH_PORT=${KEYSTONE_AUTH_PORT:-35357} | |
KEYSTONE_AUTH_PORT_INT=${KEYSTONE_AUTH_PORT_INT:-35358} | |
KEYSTONE_AUTH_PROTOCOL=${KEYSTONE_AUTH_PROTOCOL:-$SERVICE_PROTOCOL} | |
# Public facing bits | |
KEYSTONE_SERVICE_HOST=${KEYSTONE_SERVICE_HOST:-$SERVICE_HOST} | |
KEYSTONE_SERVICE_PORT=${KEYSTONE_SERVICE_PORT:-5000} | |
KEYSTONE_SERVICE_PORT_INT=${KEYSTONE_SERVICE_PORT_INT:-5001} | |
KEYSTONE_SERVICE_PROTOCOL=${KEYSTONE_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL} | |
function get_id () { | |
echo $("$@" | awk '/ id / { print $4 }') | |
} | |
function get_field() { | |
while read data; do | |
if [ "$1" -lt 0 ]; then | |
field="(\$(NF$1))" | |
else | |
field="\$$(($1 + 1))" | |
fi | |
echo "$data" | awk -F'[ \t]*\\|[ \t]*' "{print $field}" | |
done | |
} | |
ADMIN_TENANT=$(keystone tenant-create \ | |
--name admin \ | |
| grep " id " | get_field 2) | |
ADMIN_USER=$(keystone user-create \ | |
--name admin \ | |
--pass "$ADMIN_PASSWORD" \ | |
--email [email protected] \ | |
| grep " id " | get_field 2) | |
ADMIN_ROLE=$(keystone role-create \ | |
--name admin \ | |
| grep " id " | get_field 2) | |
keystone user-role-add \ | |
--user-id $ADMIN_USER \ | |
--role-id $ADMIN_ROLE \ | |
--tenant_id $ADMIN_TENANT | |
# service | |
SERVICE_TENANT=$(keystone tenant-create \ | |
--name $SERVICE_TENANT_NAME \ | |
| grep " id " | get_field 2) | |
KEYSTONE_SERVICE=$(keystone service-create \ | |
--name keystone \ | |
--type identity \ | |
--description "Keystone Identity Service" \ | |
| grep " id " | get_field 2) | |
keystone endpoint-create \ | |
--region RegionOne \ | |
--service_id $KEYSTONE_SERVICE \ | |
--publicurl "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0" \ | |
--adminurl "$KEYSTONE_AUTH_PROTOCOL://$KEYSTONE_AUTH_HOST:$KEYSTONE_AUTH_PORT/v2.0" \ | |
--internalurl "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0" | |
SWIFT_USER=$(get_id keystone user-create \ | |
--name=swift \ | |
--pass="$SWIFT_SERVICE_PASSWORD" \ | |
--tenant_id $SERVICE_TENANT \ | |
[email protected]) | |
keystone user-role-add \ | |
--tenant_id $SERVICE_TENANT \ | |
--user_id $SWIFT_USER \ | |
--role_id $ADMIN_ROLE | |
SWIFT_SERVICE=$(get_id keystone service-create \ | |
--name=swift \ | |
--type="object-store" \ | |
--description="Swift Service") | |
keystone endpoint-create \ | |
--region RegionOne \ | |
--service_id $SWIFT_SERVICE \ | |
--publicurl "http://$SERVICE_HOST:8080/v1/AUTH_\$(tenant_id)s" \ | |
--adminurl "http://$SERVICE_HOST:8080" \ | |
--internalurl "http://$SERVICE_HOST:8080/v1/AUTH_\$(tenant_id)s" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment