aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMartin André <martin.andre@kvhasia.com>2015-03-20 10:31:02 +0900
committerMartin André <martin.andre@kvhasia.com>2015-03-20 10:31:02 +0900
commit888bb9cc8c68bf61fddc0ca08a69f764a4012121 (patch)
treef3c03cd7d3e22611395c8ce96b2088ca377e8932 /tools
parent65683e5ed7df8fecd12a553bb628b982de24a326 (diff)
downloadkolla-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-xtools/genenv110
-rwxr-xr-xtools/start74
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