Merge "Introduce tools/kolla
to interact with kolla"
This commit is contained in:
commit
a2eb42744b
@ -7,10 +7,10 @@ installation of openstack. Running the 'tools/genenv' script creates an
|
||||
'openrc' to allow access to the installation.
|
||||
|
||||
Once you have run that you can either manually start the containers using the
|
||||
'docker-compose' command or try the 'tools/start' script which tries to start them
|
||||
all in a reasonable order, waiting at key points for services to become
|
||||
available. Once stood up you can issue the typical openstack commands to use
|
||||
the installation:
|
||||
'docker-compose' command or try the 'tools/kolla start' script which tries to
|
||||
start them all in a reasonable order, waiting at key points for services to
|
||||
become available. Once stood up you can issue the typical openstack commands
|
||||
to use the installation:
|
||||
|
||||
```
|
||||
# source openrc
|
||||
|
@ -127,7 +127,7 @@ you can edit for a different setup.
|
||||
|
||||
Next, run the start script.
|
||||
|
||||
$ ./tools/start
|
||||
$ ./tools/kolla start
|
||||
|
||||
The `start` script is responsible for starting the containers
|
||||
using `docker-compose -f <osp-service-container> up -d`.
|
||||
|
@ -61,7 +61,7 @@ you can edit for a different setup.
|
||||
|
||||
Next, run the start script.
|
||||
|
||||
$ ./tools/start
|
||||
$ ./tools/kolla start
|
||||
|
||||
The `start` script is responsible for starting the containers
|
||||
using `docker-compose -f <osp-service-container> up -d`.
|
||||
|
140
tools/kolla
Executable file
140
tools/kolla
Executable file
@ -0,0 +1,140 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script can be used to interact with kolla.
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "You must execute this script as root." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Move to top level directory
|
||||
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
||||
cd "$(dirname "$REAL_PATH")/.."
|
||||
|
||||
NETWORK_MANAGER=$(grep -sri NETWORK_MANAGER ./compose/openstack.env | cut -f2 -d'=')
|
||||
if [[ -z "$NETWORK_MANAGER" ]]; then
|
||||
echo 'No network manager defined in ./compose/openstack.env, defaulting to "neutron".'
|
||||
NETWORK_MANAGER="neutron"
|
||||
fi
|
||||
|
||||
function process {
|
||||
local service=$1
|
||||
echo "$ACTION $service"
|
||||
docker-compose -f ./compose/${service}.yml $COMPOSE_CMD
|
||||
}
|
||||
|
||||
function process_all {
|
||||
process rabbit
|
||||
process mariadb
|
||||
process keystone
|
||||
process glance-api-registry
|
||||
process nova-api-conductor-scheduler
|
||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||
process nova-compute-network
|
||||
else
|
||||
# Defaulting to neutron
|
||||
process nova-compute
|
||||
process neutron-server
|
||||
process neutron-agents
|
||||
fi
|
||||
process heat-api-engine
|
||||
process horizon
|
||||
}
|
||||
|
||||
function check_selinux {
|
||||
# Check for SELinux in Enforcing mode and exit if found
|
||||
if [[ -x /usr/sbin/getenforce ]]; then
|
||||
if [[ $(/usr/sbin/getenforce) == "Enforcing" ]]; then
|
||||
echo "You must execute this script without SELinux enforcing mode."
|
||||
echo "Turn off SELinux enforcing mode by running:"
|
||||
echo "$ sudo setenforce permissive"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function pre_start {
|
||||
check_selinux
|
||||
|
||||
if [[ -r ./openrc ]]; then
|
||||
# Source openrc for commands
|
||||
source ./openrc
|
||||
else
|
||||
echo 'Could not find ./openrc; bootstrap your environment with "./tools/genenv".'
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function post_start {
|
||||
IMAGE_URL=http://download.cirros-cloud.net/0.3.3/
|
||||
IMAGE=cirros-0.3.3-x86_64-disk.img
|
||||
if ! [ -f "$IMAGE" ]; then
|
||||
curl -L -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
|
||||
}
|
||||
|
||||
function usage {
|
||||
cat <<EOF
|
||||
Usage: $0 COMMAND
|
||||
|
||||
Commands:
|
||||
pull Pull all of the Docker images
|
||||
start Start all kolla containers
|
||||
status List running kolla containers
|
||||
stop Stop all kolla containers
|
||||
EOF
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
||||
(pull)
|
||||
ACTION="Pulling"
|
||||
COMPOSE_CMD="pull"
|
||||
process_all
|
||||
;;
|
||||
|
||||
(start)
|
||||
ACTION="Starting"
|
||||
COMPOSE_CMD="up -d"
|
||||
pre_start
|
||||
process_all
|
||||
post_start
|
||||
;;
|
||||
|
||||
(status)
|
||||
ACTION="Status of"
|
||||
COMPOSE_CMD="ps"
|
||||
process_all
|
||||
;;
|
||||
|
||||
(stop)
|
||||
ACTION="Stopping"
|
||||
COMPOSE_CMD="stop"
|
||||
process_all
|
||||
;;
|
||||
|
||||
(*) usage
|
||||
exit 0
|
||||
;;
|
||||
esac
|
102
tools/pull
102
tools/pull
@ -1,102 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script can be used to pull all of the docker images for the
|
||||
# containers that compose Kolla. This is primarily used to update
|
||||
# containers after a rebuild. Run with the option docker or compose
|
||||
# to select the pull tool.
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "You must execute this script as root." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
usage () {
|
||||
cat <<EOF
|
||||
Usage: $0 [mode]
|
||||
|
||||
Options:
|
||||
|
||||
--docker, -d - Pull with docker client
|
||||
--compose, -c - Pull with docker-compose client
|
||||
EOF
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
||||
(''|--help|-h) usage
|
||||
exit 0
|
||||
;;
|
||||
|
||||
(--docker|-d)
|
||||
shift
|
||||
PULL_TOOL=docker
|
||||
;;
|
||||
|
||||
(--compose|-c)
|
||||
shift
|
||||
PULL_TOOL=compose
|
||||
;;
|
||||
esac
|
||||
|
||||
# Move to top level directory
|
||||
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
||||
cd "$(dirname "$REAL_PATH")/.."
|
||||
|
||||
if [[ "${PULL_TOOL}" == 'compose' ]]; then
|
||||
|
||||
echo Pulling with docker-compose.
|
||||
echo Pulling rabbitmq.
|
||||
docker-compose -f ./compose/rabbitmq.yml pull
|
||||
|
||||
echo Pulling mariadb.
|
||||
docker-compose -f ./compose/mariadb.yml pull
|
||||
|
||||
echo Pulling keystone.
|
||||
docker-compose -f ./compose/keystone.yml pull
|
||||
|
||||
echo Pulling glance.
|
||||
docker-compose -f ./compose/glance-api-registry.yml pull
|
||||
|
||||
echo Pulling nova controller.
|
||||
docker-compose -f ./compose/nova-api-conductor-scheduler.yml pull
|
||||
|
||||
echo Pulling nova compute with nova networking.
|
||||
docker-compose -f ./compose/nova-compute-network.yml pull
|
||||
|
||||
echo Pulling heat.
|
||||
docker-compose -f ./compose/heat-api-engine.yml pull
|
||||
|
||||
echo Pulling Horizon.
|
||||
docker-compose -f ./compose/horizon.yml pull
|
||||
fi
|
||||
|
||||
if [[ "${PULL_TOOL}" == 'docker' ]]; then
|
||||
echo Pulling mariadb.
|
||||
docker pull kollaglue/centos-rdo-mariadb-data
|
||||
docker pull kollaglue/centos-rdo-mariadb-app
|
||||
|
||||
echo Pulling keystone.
|
||||
docker pull kollaglue/centos-rdo-keystone
|
||||
|
||||
echo Pulling glance.
|
||||
docker pull kollaglue/centos-rdo-glance-api
|
||||
docker pull kollaglue/centos-rdo-glance-registry
|
||||
|
||||
echo Pulling nova controller.
|
||||
docker pull kollaglue/centos-rdo-nova-conductor
|
||||
docker pull kollaglue/centos-rdo-nova-api
|
||||
docker pull kollaglue/centos-rdo-nova-scheduler
|
||||
|
||||
echo Pulling nova compute with nova networking.
|
||||
docker pull kollaglue/centos-rdo-nova-compute-data
|
||||
docker pull kollaglue/centos-rdo-nova-libvirt
|
||||
docker pull kollaglue/centos-rdo-nova-network
|
||||
docker pull kollaglue/centos-rdo-nova-compute
|
||||
|
||||
echo Pulling heat.
|
||||
docker pull kollaglue/centos-rdo-heat-api
|
||||
docker pull kollaglue/centos-rdo-heat-engine
|
||||
|
||||
echo Pulling horizon.
|
||||
docker pull kollaglue/centos-rdo-horizon
|
||||
fi
|
92
tools/start
92
tools/start
@ -1,92 +0,0 @@
|
||||
#!/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.
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "You must execute this script as root." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Move to top level directory
|
||||
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
||||
cd "$(dirname "$REAL_PATH")/.."
|
||||
|
||||
# Check for SELinux in Enforcing mode and exit if found
|
||||
if [[ -x /usr/sbin/getenforce ]]; then
|
||||
if [[ $(/usr/sbin/getenforce) == "Enforcing" ]]; then
|
||||
echo "You must execute this script without SELinux enforcing mode."
|
||||
echo "Turn off SELinux enforcing mode by running:"
|
||||
echo "$ sudo setenforce permissive"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
|
||||
awk '$4 == "src" {print $5}')
|
||||
|
||||
NETWORK_MANAGER=$(grep -ri NETWORK_MANAGER compose/openstack.env | cut -f2 -d'=')
|
||||
|
||||
# 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
|
||||
|
||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||
echo Starting nova compute with nova networking.
|
||||
docker-compose -f ./compose/nova-compute-network.yml up -d
|
||||
elif [[ "${NETWORK_MANAGER}" == "neutron" ]] ; then
|
||||
echo Starting nova compute with neutron networking.
|
||||
docker-compose -f ./compose/nova-compute.yml up -d
|
||||
docker-compose -f ./compose/neutron-server.yml up -d
|
||||
docker-compose -f ./compose/neutron-agents.yml up -d
|
||||
fi
|
||||
|
||||
echo Starting heat.
|
||||
docker-compose -f ./compose/heat-api-engine.yml up -d
|
||||
|
||||
echo Starting Horizon.
|
||||
docker-compose -f ./compose/horizon.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 -L -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
|
47
tools/status
47
tools/status
@ -1,47 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script can be used to check the Kolla containers deployed
|
||||
# from the start script.
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "You must execute this script as root." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Move to top level directory
|
||||
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
||||
cd "$(dirname "$REAL_PATH")/.."
|
||||
|
||||
# Check what network manager is set in the ENV file.
|
||||
NETWORK_MANAGER=$(grep -ri NETWORK_MANAGER compose/openstack.env | cut -f2 -d'=')
|
||||
|
||||
echo Checking rabbitmq.
|
||||
docker-compose -f ./compose/rabbitmq.yml ps
|
||||
|
||||
echo Checking mariadb.
|
||||
docker-compose -f ./compose/mariadb.yml ps
|
||||
|
||||
echo Checking keystone.
|
||||
docker-compose -f ./compose/keystone.yml ps
|
||||
|
||||
echo Checking glance.
|
||||
docker-compose -f ./compose/glance-api-registry.yml ps
|
||||
|
||||
echo Checking nova.
|
||||
docker-compose -f ./compose/nova-api-conductor-scheduler.yml ps
|
||||
|
||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||
echo Checking nova compute with nova networking.
|
||||
docker-compose -f ./compose/nova-compute-network.yml ps
|
||||
elif [[ "${NETWORK_MANAGER}" == "neutron" ]] ; then
|
||||
echo Checking nova compute with neutron networking.
|
||||
docker-compose -f ./compose/nova-compute.yml ps
|
||||
docker-compose -f ./compose/neutron-server.yml ps
|
||||
docker-compose -f ./compose/neutron-agents.yml ps
|
||||
fi
|
||||
|
||||
echo Checking heat.
|
||||
docker-compose -f ./compose/heat-api-engine.yml ps
|
||||
|
||||
echo Checking Horizon.
|
||||
docker-compose -f ./compose/horizon.yml ps
|
44
tools/stop
44
tools/stop
@ -1,44 +0,0 @@
|
||||
#!/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")/.."
|
||||
|
||||
NETWORK_MANAGER=$(grep -ri NETWORK_MANAGER compose/openstack.env | cut -f2 -d'=')
|
||||
|
||||
echo Stopping rabbitmq.
|
||||
docker-compose -f ./compose/rabbitmq.yml stop
|
||||
|
||||
echo Stopping mariadb.
|
||||
docker-compose -f ./compose/mariadb.yml stop
|
||||
|
||||
echo Stopping keystone.
|
||||
docker-compose -f ./compose/keystone.yml stop
|
||||
|
||||
echo Stopping glance.
|
||||
docker-compose -f ./compose/glance-api-registry.yml stop
|
||||
|
||||
echo Stopping nova.
|
||||
docker-compose -f ./compose/nova-api-conductor-scheduler.yml stop
|
||||
|
||||
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
||||
echo Stopping nova compute with nova networking.
|
||||
docker-compose -f ./compose/nova-compute-network.yml stop
|
||||
elif [[ "${NETWORK_MANAGER}" == "neutron" ]] ; then
|
||||
echo Stopping nova compute with neutron networking.
|
||||
docker-compose -f ./compose/nova-compute.yml stop
|
||||
docker-compose -f ./compose/neutron-server.yml up -d
|
||||
docker-compose -f ./compose/neutron-agents.yml stop
|
||||
fi
|
||||
|
||||
echo Stopping heat.
|
||||
docker-compose -f ./compose/heat-api-engine.yml stop
|
||||
|
||||
echo Stopping Horizon.
|
||||
docker-compose -f ./compose/horizon.yml stop
|
Loading…
Reference in New Issue
Block a user