diff options
| author | Martin André <martin.andre@kvhasia.com> | 2015-03-20 10:31:02 +0900 |
|---|---|---|
| committer | Martin André <martin.andre@kvhasia.com> | 2015-03-20 10:31:02 +0900 |
| commit | 888bb9cc8c68bf61fddc0ca08a69f764a4012121 (patch) | |
| tree | f3c03cd7d3e22611395c8ce96b2088ca377e8932 /tools | |
| parent | 65683e5ed7df8fecd12a553bb628b982de24a326 (diff) | |
| download | kolla-888bb9cc8c68bf61fddc0ca08a69f764a4012121.tar.gz kolla-888bb9cc8c68bf61fddc0ca08a69f764a4012121.zip | |
Move genenv.sh and start.sh to tools directory
Rename them `genenv` and `start`.
Have `genenv` create the openrc file in the top-level directory.
Add openrc and compose/openstack.env to gitignore, as well as *.img.
Change-Id: I5d8006e97efd77cf364215f55d5e585139ae273e
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/genenv | 110 | ||||
| -rwxr-xr-x | tools/start | 74 |
2 files changed, 184 insertions, 0 deletions
diff --git a/tools/genenv b/tools/genenv new file mode 100755 index 000000000..91ac42cc4 --- /dev/null +++ b/tools/genenv @@ -0,0 +1,110 @@ +#!/bin/bash +# +# This script generates a minimal set of environment variables to allow +# the openstack containers to operate. It is creating a configuration +# suitable for an all-in-one installation of openstack. +# +# It also creates a suitable 'openrc' for use with the installed system. + +# Move to top level directory +REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") +cd "$(dirname "$REAL_PATH")/.." + +MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') | + awk '$4 == "src" {print $5}') + +MY_DEV=$(ip route get $(ip route | awk '$1 == "default" {print $3}') | + awk '$4 == "src" {print $3}') + +echo MY_IP=$MY_IP +echo MY_DEV=$MY_DEV + +# Database +HOST_IP=$MY_IP +MYSQL_ROOT_PASSWORD=kolla +PASSWORD=12345 + +# Host +ADMIN_TENANT_NAME=admin +PUBLIC_IP=$HOST_IP + +# RabbitMQ +RABBITMQ_SERVICE_HOST=$HOST_IP +RABBIT_USER=guest +RABBIT_PASSWORD=guest + +# Keystone +KEYSTONE_ADMIN_TOKEN=$PASSWORD +KEYSTONE_DB_PASSWORD=kolla +KEYSTONE_ADMIN_PASSWORD=$PASSWORD +KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP +KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP +KEYSTONE_AUTH_PROTOCOL=http + +# Glance +GLANCE_DB_NAME=glance +GLANCE_DB_USER=glance +GLANCE_DB_PASSWORD=kolla +GLANCE_KEYSTONE_USER=glance +GLANCE_KEYSTONE_PASSWORD=glance +GLANCE_API_SERVICE_HOST=$HOST_IP +GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP + +# Nova +NOVA_DB_PASSWORD=nova +NOVA_DB_NAME=nova +NOVA_DB_USER=nova +NOVA_KEYSTONE_USER=nova +NOVA_KEYSTONE_PASSWORD=nova +NOVA_API_SERVICE_HOST=$HOST_IP +NOVA_EC2_SERVICE_HOST=$HOST_IP +NOVA_PUBLIC_INTERFACE=$MY_DEV +NOVA_FLAT_INTERFACE=$MY_DEV +CONFIG_NETWORK=True + +cat > ./openrc <<EOF +export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" +export OS_USERNAME=$ADMIN_TENANT_NAME +export OS_PASSWORD=$PASSWORD +export OS_TENANT_NAME=$ADMIN_TENANT_NAME +EOF + +cat > ./compose/openstack.env <<EOF +ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME +CONFIG_NETWORK=$CONFIG_NETWORK +DB_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD +FLAT_INTERFACE=$NOVA_FLAT_INTERFACE +GLANCE_API_SERVICE_HOST=$GLANCE_API_SERVICE_HOST +GLANCE_DB_NAME=$GLANCE_DB_NAME +GLANCE_DB_PASSWORD=$GLANCE_DB_PASSWORD +GLANCE_DB_USER=$GLANCE_DB_USER +GLANCE_KEYSTONE_PASSWORD=$GLANCE_KEYSTONE_PASSWORD +GLANCE_KEYSTONE_USER=$GLANCE_KEYSTONE_USER +GLANCE_REGISTRY_SERVICE_HOST=$GLANCE_REGISTRY_SERVICE_HOST +KEYSTONE_ADMIN_PASSWORD=$KEYSTONE_ADMIN_PASSWORD +KEYSTONE_ADMIN_SERVICE_HOST=$KEYSTONE_ADMIN_SERVICE_HOST +KEYSTONE_ADMIN_SERVICE_PORT=35357 +KEYSTONE_ADMIN_TOKEN=$KEYSTONE_ADMIN_TOKEN +KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL +KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD +KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST +MARIADB_SERVICE_HOST=$HOST_IP +MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD +NETWORK_MANAGER=nova +NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST +NOVA_DB_NAME=$NOVA_DB_NAME +NOVA_DB_PASSWORD=$NOVA_DB_PASSWORD +NOVA_DB_USER=$NOVA_DB_USER +NOVA_EC2_API_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST +NOVA_EC2_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST +NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD +NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER +PUBLIC_INTERFACE=$NOVA_PUBLIC_INTERFACE +PUBLIC_IP=$HOST_IP +PUBLIC_IP=$PUBLIC_IP +RABBITMQ_PASS=$RABBIT_PASSWORD +RABBITMQ_SERVICE_HOST=$RABBITMQ_SERVICE_HOST +RABBITMQ_USER=$RABBIT_USER +RABBIT_PASSWORD=$RABBIT_PASSWORD +RABBIT_USERID=$RABBIT_USER +EOF diff --git a/tools/start b/tools/start new file mode 100755 index 000000000..887ec8ab1 --- /dev/null +++ b/tools/start @@ -0,0 +1,74 @@ +#!/bin/bash +# +# This script can be used to start a minimal set of containers that allows +# you to boot an instance. Note that it requires that you have some openstack +# clients available: keystone, glance, and nova, as well as mysql to ensure +# services are up. You will also need these in order to interact with the +# installation once started. + +# Move to top level directory +REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')") +cd "$(dirname "$REAL_PATH")/.." + +# Set SELinux to permissive +setenforce permissive + +# This directory is shared with the host to allow qemu instance +# configs to remain accross restarts. This is needed in the event libvirt +# is not installed in the system. +mkdir -p /etc/libvirt/qemu + +# This should probably go into nova-networking or nova-compute containers. +# but you can't modprobe from a container for some reason +modprobe ebtables + +MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') | + awk '$4 == "src" {print $5}') + +# Source openrc for commands +source ./openrc + +echo Starting rabbitmq. +docker-compose -f ./compose/rabbitmq.yml up -d + +echo Starting mariadb. +docker-compose -f ./compose/mariadb.yml up -d + +echo Starting keystone. +docker-compose -f ./compose/keystone.yml up -d + +echo Starting glance. +docker-compose -f ./compose/glance-api-registry.yml up -d + +echo Starting nova. +docker-compose -f ./compose/nova-api-conductor-scheduler.yml up -d + +echo Starting nova compute with nova networking. +docker-compose -f ./compose/nova-compute-network.yml up -d + +IMAGE_URL=http://download.cirros-cloud.net/0.3.3/ +IMAGE=cirros-0.3.3-x86_64-disk.img +if ! [ -f "$IMAGE" ]; then + curl -o ./$IMAGE $IMAGE_URL/$IMAGE +fi + +until keystone user-list | grep glance +do + echo "Waiting for OpenStack services to become available" + sleep 2 +done + +sleep 3 + +echo Creating glance image. +glance image-create --name cirros --is-public false --disk-format qcow2 --container-format bare --file ./$IMAGE + +echo Example usage: +echo +echo nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 +echo nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 +echo nova network-create vmnet --fixed-range-v4=10.0.0.0/24 --bridge=br100 --multi-host=T +echo +echo nova keypair-add mykey > mykey.pem +echo chmod 600 mykey.pem +echo nova boot --flavor m1.medium --key_name mykey --image cirros kolla_vm |
