ansible/playbooks/vhost_halt_guests.yml

54 lines
1.4 KiB
YAML
Raw Normal View History

2013-08-12 15:47:12 +00:00
# requires --extra-vars="vhost=somevhost fqdn"
# General overview:
2013-08-12 15:47:12 +00:00
# talk to the vhost
# get back list of instances
# add each of their hostnames to an addhoc group
# halt each of them in a second play
# wait for them to die
# third play, reboot the vhost
# wait for vhost to come back
# TO BE DONE - should be fixable w/ansible 0.9
# wait for all of the instances to return(?)
# compare the first list to the second for state info
# how to do this:
# capture output of action: virt command=info before halting guests
# compare to same command after vhost comes back
# ansible 0.9 should allow us to preserve content of two registered variables
# across multiple plays
---
- name: Find instances
hosts: "{{ vhost }}"
2013-08-12 15:47:12 +00:00
user: root
tasks:
- name: Get list of guests
virt: command=list_vms
2013-08-12 15:47:12 +00:00
register: vmlist
- name: Add them to myvms_new group
local_action: add_host hostname={{ item }} groupname=myvms_new
with_items: "{{ vmlist.list_vms }}"
2013-08-12 15:47:12 +00:00
- name: Halt instances
2013-08-12 15:47:12 +00:00
hosts: myvms_new
user: root
serial: 1
tasks:
- name: Tell nagios to shush
nagios: action=silence host={{ inventory_hostname_short }}
delegate_to: noc01.iad2.fedoraproject.org
2013-08-12 15:47:12 +00:00
- name: Echo-y
ansible.builtin.command: /sbin/halt -p
2013-08-12 15:47:12 +00:00
ignore_errors: true
# if one of them is down we don't care
- name: Wait for them to die
local_action: wait_for port=22 delay=30 timeout=300 state=stopped host={{ inventory_hostname }}