Last active
December 25, 2015 01:49
-
-
Save ishikawa84g/6897607 to your computer and use it in GitHub Desktop.
DevStack から抽出した Keystone 初期化用のあれ。 Nova, Glance, Keystone, Cinder, Neutron, Ceilometer のみ。ちょっと書き換え。気に食わない部分は多々あるけどとりあえず動く。
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 | |
# -------- | |
# Defaults | |
# -------- | |
ADMIN_PASSWORD=${ADMIN_PASSWORD:-secret} | |
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD} | |
export SERVICE_TOKEN=ADMIN | |
export SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0 | |
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} | |
KEYSTONE_SERVICE_PROTOCOL=http | |
KEYSTONE_AUTH_PROTOCOL=http | |
NOVA_SERVICE_PROTOCOL=http | |
CINDER_SERVICE_PROTOCOL=http | |
GLANCE_SERVICE_PROTOCOL=http | |
CEILOMETER_SERVICE_PROTOCOL=http | |
NEUTRON_SERVICE_PROTOCOL=http | |
EC2_SERVICE_PROTOCOL=http | |
IDENTITY_API_VERSION=2.0 | |
REGION=RegionOne | |
SERVICE_HOST=127.0.0.1 | |
KEYSTONE_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
KEYSTONE_SERVICE_INT_HOST=${KEYSTONE_SERVICE_HOST:-127.0.0.1} | |
KEYSTONE_SERVICE_ADMIN_HOST=${KEYSTONE_SERVICE_HOST:-127.0.0.1} | |
GLANCE_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
GLANCE_SERVICE_INT_HOST=${GLANCE_SERVICE_HOST:-127.0.0.1} | |
GLANCE_SERVICE_ADMIN_HOST=${GLANCE_SERVICE_HOST:-127.0.0.1} | |
CEILOMETER_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
CEILOMETER_SERVICE_INT_HOST=${CEILOMETER_SERVICE_HOST:-127.0.0.1} | |
CEILOMETER_SERVICE_ADMIN_HOST=${CEILOMETER_SERVICE_HOST:-127.0.0.1} | |
NOVA_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
NOVA_SERVICE_INT_HOST=${NOVA_SERVICE_HOST:-127.0.0.1} | |
NOVA_SERVICE_ADMIN_HOST=${NOVA_SERVICE_HOST:-127.0.0.1} | |
NEUTRON_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
NEUTRON_SERVICE_INT_HOST=${NEUTRON_SERVICE_HOST:-127.0.0.1} | |
NEUTRON_SERVICE_ADMIN_HOST=${NEUTRON_SERVICE_HOST:-127.0.0.1} | |
EC2_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
EC2_SERVICE_INT_HOST=${EC2_SERVICE_HOST:-127.0.0.1} | |
EC2_SERVICE_ADMIN_HOST=${EC2_SERVICE_HOST:-127.0.0.1} | |
CINDER_SERVICE_HOST=${SERVICE_HOST:-127.0.0.1} | |
CINDER_SERVICE_INT_HOST=${CINDER_SERVICE_HOST:-127.0.0.1} | |
CINDER_SERVICE_ADMIN_HOST=${CINDER_SERVICE_HOST:-127.0.0.1} | |
# ------------ | |
# Function | |
# ------------ | |
function get_id () { | |
echo `"$@" | awk '/ id / { print $4 }'` | |
} | |
# -------------------------------------- | |
# Admin | |
# -------------------------------------- | |
ADMIN_TENANT=$(get_id keystone tenant-create --name admin) | |
ADMIN_ROLE=$(get_id keystone role-create --name admin) | |
ADMIN_USER=$(get_id keystone user-create --name admin --pass "$ADMIN_PASSWORD" --email [email protected]) | |
keystone user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenant-id $ADMIN_TENANT | |
# -------------------------------------- | |
# Service | |
# -------------------------------------- | |
SERVICE_TENANT=$(get_id keystone tenant-create --name $SERVICE_TENANT_NAME) | |
# -------------------------------------- | |
# demo | |
# -------------------------------------- | |
MEMBER_ROLE=$(keystone role-list | awk "/ _member_ / { print \$2 }") | |
DEMO_TENANT=$(get_id keystone tenant-create --name=demo) | |
DEMO_USER=$(get_id keystone user-create --name demo --pass "$ADMIN_PASSWORD" --email [email protected]) | |
keystone user-role-add --user-id $DEMO_USER --role-id $MEMBER_ROLE --tenant-id $DEMO_TENANT | |
keystone user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenant-id $DEMO_TENANT | |
# -------------------------------------- | |
# Services | |
# -------------------------------------- | |
KEYSTONE_SERVICE=$(get_id keystone service-create --name keystone --type identity --description "Keystone Identity Service") | |
GLANCE_SERVICE=$(get_id keystone service-create --name=glance --type=image --description="Glance Image Service") | |
CEILOMETER_SERVICE=$(get_id keystone service-create --name=ceilometer --type=metering --description="Ceilometer Service") | |
NOVA_SERVICE=$(get_id keystone service-create --name=nova --type=compute --description="Nova Compute Service") | |
NOVA_V3_SERVICE=$(get_id keystone service-create --name=nova --type=computev3 --description="Nova Compute Service V3") | |
NEUTRON_SERVICE=$(get_id keystone service-create --name=neutron --type=network --description="Neutron Service") | |
EC2_SERVICE=$(get_id keystone service-create --name=ec2 --type=ec2 --description="EC2 Compatibility Layer") | |
CINDER_SERVICE=$(get_id keystone service-create --name=cinder --type=volume --description="Cinder Volume Service") | |
CINDER_V2_SERVICE=$(get_id keystone service-create --name=cinder --type=volumev2 --description="Cinder Volume Service V2") | |
# -------------------------------------- | |
# Service Users | |
# -------------------------------------- | |
NOVA_USER=$(get_id keystone user-create --name=nova --pass="$SERVICE_PASSWORD" --tenant_id $SERVICE_TENANT [email protected]) | |
GLANCE_USER=$(get_id keystone user-create --name=glance --pass="$SERVICE_PASSWORD" --tenant_id $SERVICE_TENANT [email protected]) | |
CEILOMETER_USER=$(get_id keystone user-create --name=ceilometer --pass="$SERVICE_PASSWORD" --tenant_id $SERVICE_TENANT [email protected]) | |
NEUTRON_USER=$(get_id keystone user-create --name=neutron --pass="$SERVICE_PASSWORD" --tenant_id $SERVICE_TENANT [email protected]) | |
CINDER_USER=$(get_id keystone user-create --name=cinder --pass="$SERVICE_PASSWORD" --tenant_id $SERVICE_TENANT [email protected]) | |
# -------------------------------------- | |
# User role add | |
# -------------------------------------- | |
keystone user-role-add --tenant-id $SERVICE_TENANT --role-id $ADMIN_ROLE --user-id $GLANCE_USER | |
keystone user-role-add --tenant-id $SERVICE_TENANT --role-id $ADMIN_ROLE --user-id $CEILOMETER_USER | |
keystone user-role-add --tenant-id $SERVICE_TENANT --role-id $ADMIN_ROLE --user-id $NOVA_USER | |
keystone user-role-add --tenant-id $SERVICE_TENANT --role-id $ADMIN_ROLE --user-id $NEUTRON_USER | |
keystone user-role-add --tenant-id $SERVICE_TENANT --role-id $ADMIN_ROLE --user-id $CINDER_USER | |
# -------------------------------------- | |
# Endpoints | |
# -------------------------------------- | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $KEYSTONE_SERVICE \ | |
--publicurl "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:5000/v$IDENTITY_API_VERSION" \ | |
--adminurl "$KEYSTONE_AUTH_PROTOCOL://$KEYSTONE_SERVICE_ADMIN_HOST:35357/v$IDENTITY_API_VERSION" \ | |
--internalurl "$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_INT_HOST:5000/v$IDENTITY_API_VERSION" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $GLANCE_SERVICE \ | |
--publicurl "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SERVICE_HOST:9292" \ | |
--adminurl "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SERVICE_ADMIN_HOST:9292" \ | |
--internalurl "$GLANCE_SERVICE_PROTOCOL://$GLANCE_SERVICE_INT_HOST:9292" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $CEILOMETER_SERVICE \ | |
--publicurl "$CEILOMETER_SERVICE_PROTOCOL://$CEILOMETER_SERVICE_HOST:8777" \ | |
--adminurl "$CEILOMETER_SERVICE_PROTOCOL://$CEILOMETER_SERVICE_ADMIN_HOST:8777" \ | |
--internalurl "$CEILOMETER_SERVICE_PROTOCOL://$CEILOMETER_SERVICE_INT_HOST:8777" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $NOVA_SERVICE \ | |
--publicurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_HOST:8774/v2/\$(tenant_id)s" \ | |
--adminurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_ADMIN_HOST:8774/v2/\$(tenant_id)s" \ | |
--internalurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_INT_HOST:8774/v2/\$(tenant_id)s" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $NOVA_V3_SERVICE \ | |
--publicurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_HOST:8774/v3" \ | |
--adminurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_ADMIN_HOST:8774/v3" \ | |
--internalurl "$NOVA_SERVICE_PROTOCOL://$NOVA_SERVICE_INT_HOST:8774/v3" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $NEUTRON_SERVICE \ | |
--publicurl "$NEUTRON_SERVICE_PROTOCOL://$NEUTRON_SERVICE_HOST:9696" \ | |
--adminurl "$NEUTRON_SERVICE_PROTOCOL://$NEUTRON_SERVICE_ADMIN_HOST:9696" \ | |
--internalurl "$NEUTRON_SERVICE_PROTOCOL://$NEUTRON_SERVICE_INT_HOST:9696" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $EC2_SERVICE \ | |
--publicurl "$EC2_SERVICE_PROTOCOL://$EC2_SERVICE_HOST:8773/services/Cloud" \ | |
--adminurl "$EC2_SERVICE_PROTOCOL://$EC2_SERVICE_ADMIN_HOST:8773/services/Admin" \ | |
--internalurl "$EC2_SERVICE_PROTOCOL://$EC2_SERVICE_INT_HOST:8773/services/Cloud" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $CINDER_SERVICE \ | |
--publicurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:8776/v1/\$(tenant_id)s" \ | |
--adminurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_ADMIN_HOST:8776/v1/\$(tenant_id)s" \ | |
--internalurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_INT_HOST:8776/v1/\$(tenant_id)s" | |
keystone endpoint-create \ | |
--region $REGION \ | |
--service_id $CINDER_V2_SERVICE \ | |
--publicurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_HOST:8776/v2/\$(tenant_id)s" \ | |
--adminurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_ADMIN_HOST:8776/v2/\$(tenant_id)s" \ | |
--internalurl "$CINDER_SERVICE_PROTOCOL://$CINDER_SERVICE_INT_HOST:8776/v2/\$(tenant_id)s" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment