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.
|
'openrc' to allow access to the installation.
|
||||||
|
|
||||||
Once you have run that you can either manually start the containers using the
|
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
|
'docker-compose' command or try the 'tools/kolla start' script which tries to
|
||||||
all in a reasonable order, waiting at key points for services to become
|
start them all in a reasonable order, waiting at key points for services to
|
||||||
available. Once stood up you can issue the typical openstack commands to use
|
become available. Once stood up you can issue the typical openstack commands
|
||||||
the installation:
|
to use the installation:
|
||||||
|
|
||||||
```
|
```
|
||||||
# source openrc
|
# source openrc
|
||||||
|
@ -127,7 +127,7 @@ you can edit for a different setup.
|
|||||||
|
|
||||||
Next, run the start script.
|
Next, run the start script.
|
||||||
|
|
||||||
$ ./tools/start
|
$ ./tools/kolla start
|
||||||
|
|
||||||
The `start` script is responsible for starting the containers
|
The `start` script is responsible for starting the containers
|
||||||
using `docker-compose -f <osp-service-container> up -d`.
|
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.
|
Next, run the start script.
|
||||||
|
|
||||||
$ ./tools/start
|
$ ./tools/kolla start
|
||||||
|
|
||||||
The `start` script is responsible for starting the containers
|
The `start` script is responsible for starting the containers
|
||||||
using `docker-compose -f <osp-service-container> up -d`.
|
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…
x
Reference in New Issue
Block a user