62e02fdbf4
Due to a revert in the Docker code, thin neutron containers do not work
at this time. The neutron plugin agents do not need to exist in the same
container as the other agents however. This allows for using either
linuxbridge or openvswitch
The docker commit that did the revert:
ff770d33cd
Closes-Bug: 1469307
Change-Id: Idf79c31c74c34b93f5a9bac49730aca49bbdb861
152 lines
3.5 KiB
Bash
Executable File
152 lines
3.5 KiB
Bash
Executable File
#!/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
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "Call docker-compose -f ./compose/${service}.yml $COMPOSE_CMD fail."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function process_all {
|
|
process rabbitmq
|
|
process mariadb
|
|
process keystone
|
|
process glance-api-registry
|
|
process nova-api-conductor-scheduler-consoleauth-novncproxy
|
|
if [[ "${NETWORK_MANAGER}" == "nova" ]] ; then
|
|
process nova-compute-network
|
|
else
|
|
# Defaulting to neutron
|
|
process nova-compute
|
|
process neutron-server
|
|
process neutron-linuxbridge-agent
|
|
process neutron-agents
|
|
fi
|
|
process heat-api-engine
|
|
process magnum-api-conductor
|
|
process horizon
|
|
process cinder-api-scheduler
|
|
process cinder-backup
|
|
process cinder-volume
|
|
}
|
|
|
|
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 {
|
|
until keystone user-list | grep glance; do
|
|
echo "Waiting for OpenStack services to become available"
|
|
sleep 2
|
|
done
|
|
|
|
sleep 3
|
|
|
|
echo Example Usage:
|
|
echo source openrc # source keystone credentials
|
|
|
|
echo Configure your environment once by running:
|
|
echo tools/init-runonce
|
|
}
|
|
|
|
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
|
|
restart Restart all kolla containers
|
|
destroy Kill and remove all kolla containers and volumes
|
|
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
|
|
;;
|
|
|
|
(restart)
|
|
ACTION="Restarting"
|
|
COMPOSE_CMD="restart"
|
|
process_all
|
|
;;
|
|
|
|
(status)
|
|
ACTION="Status of"
|
|
COMPOSE_CMD="ps"
|
|
process_all
|
|
;;
|
|
|
|
(stop)
|
|
ACTION="Stopping"
|
|
COMPOSE_CMD="stop"
|
|
process_all
|
|
;;
|
|
|
|
(destroy)
|
|
ACTION="Destroying"
|
|
COMPOSE_CMD="kill"
|
|
process_all
|
|
COMPOSE_CMD="rm -f -v"
|
|
process_all
|
|
;;
|
|
|
|
(*) usage
|
|
exit 0
|
|
;;
|
|
esac
|