Added support for a stop playbook in kolla

Behavior of stop playbook is very similar to the destroy
playbook.  This is meant when you may just want to bring down
the service for some sort of maintenance but not destroy all
the associated data. Also added support for the new playbook
into the kolla-ansible command.

Change-Id: Icf0ca91de71dc8ead3a024de3e5b9e49116560d1
Implements: blueprint ansible-stop-host-playbook
This commit is contained in:
Borne Mace 2016-10-18 16:22:02 -07:00 committed by Jeffrey Zhang
parent cf81e153cb
commit 2cfc069e21
7 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,17 @@
---
- name: Creating /kolla-stop/tools directory on node
file:
state: directory
path: /tmp/kolla-stop/tools
- name: Copying validate-docker-execute.sh file
copy:
src: ../tools/validate-docker-execute.sh
dest: /tmp/kolla-stop/tools
mode: 0755
- name: Copying stop-containers file
copy:
src: ../tools/stop-containers
dest: /tmp/kolla-stop/tools
mode: 0755

View File

@ -0,0 +1,4 @@
---
- include: copy_tools.yml
- include: stop_containers.yml

View File

@ -0,0 +1,4 @@
---
- name: Stopping Kolla containers
command: /tmp/kolla-stop/tools/stop-containers

4
ansible/stop.yml Normal file
View File

@ -0,0 +1,4 @@
---
- hosts: all
roles:
- stop

View File

@ -30,6 +30,7 @@ data_files =
share/kolla/tools = tools/cleanup-containers
share/kolla/tools = tools/cleanup-host
share/kolla/tools = tools/cleanup-images
share/kolla/tools = tools/stop-containers
share/kolla/doc = doc/*
share/kolla/etc_examples = etc/*
share/kolla = tools/init-runonce

View File

@ -50,6 +50,7 @@ Commands:
post-deploy Do post deploy on deploy node
pull Pull all images for containers (only pulls, no running container changes)
reconfigure Reconfigure OpenStack service
stop Stop Kolla containers
certificates Generate self-signed certificate for TLS *For Development Only*
upgrade Upgrades existing OpenStack Environment
genconfig Generate configuration files for enabled OpenStack services
@ -206,6 +207,10 @@ EOF
ACTION="Reconfigure OpenStack service"
EXTRA_OPTS="$EXTRA_OPTS -e action=reconfigure -e serial=30%"
;;
(stop)
ACTION="Stop Kolla containers"
PLAYBOOK="${BASEDIR}/ansible/stop.yml"
;;
(certificates)
ACTION="Generate TLS Certificates"
PLAYBOOK="${BASEDIR}/ansible/certificates.yml"

18
tools/stop-containers Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
if [[ $(pgrep qemu) ]]; then
echo "Some qemu processes were detected."
echo "Docker will not be able to stop the nova_libvirt container with those running."
echo "Please clean them up before rerunning this script."
exit 1
fi
if [ -n "$1" ]; then
containers_to_stop=($(docker ps | grep -E "$1" | awk '{print $1}'))
else
containers_to_stop=$(docker ps --filter "label=kolla_version" --format "{{.Names}}" -a)
fi
echo "Stopping containers..."
(docker stop -t 30 ${containers_to_stop} 2>&1) > /dev/null
echo "All containers stopped!"