# requires --extra-vars="vhost=somevhost fqdn" #General overview: # 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 }}" user: root tasks: - name: get list of guests virt: command=list_vms register: vmlist - name: add them to myvms_new group local_action: add_host hostname={{ item }} groupname=myvms_new with_items: "{{ vmlist.list_vms }}" - name: halt instances hosts: myvms_new user: root serial: 1 tasks: - name: tell nagios to shush nagios: action=silence host={{ inventory_hostname_short }} delegate_to: noc01.phx2.fedoraproject.org - name: echo-y command: /sbin/halt -p 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 }}