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:
parent
cf81e153cb
commit
2cfc069e21
17
ansible/roles/stop/tasks/copy_tools.yml
Normal file
17
ansible/roles/stop/tasks/copy_tools.yml
Normal 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
|
4
ansible/roles/stop/tasks/main.yml
Normal file
4
ansible/roles/stop/tasks/main.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- include: copy_tools.yml
|
||||
|
||||
- include: stop_containers.yml
|
4
ansible/roles/stop/tasks/stop_containers.yml
Normal file
4
ansible/roles/stop/tasks/stop_containers.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: Stopping Kolla containers
|
||||
command: /tmp/kolla-stop/tools/stop-containers
|
||||
|
4
ansible/stop.yml
Normal file
4
ansible/stop.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- hosts: all
|
||||
roles:
|
||||
- stop
|
@ -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
|
||||
|
@ -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
18
tools/stop-containers
Executable 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!"
|
Loading…
Reference in New Issue
Block a user