# 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 action: 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 action: nagios action=silence host=${inventory_hostname_short} delegate_to: noc01.phx2.fedoraproject.org - name: echo-y action: 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} - name: tell nagios to unshush action: nagios action=unsilence host=${inventory_hostname_short} delegate_to: noc01.phx2.fedoraproject.org - name: reboot vhost hosts: $vhost user: root tasks: - name: tell nagios to shush action: nagios action=silence host=${inventory_hostname_short} delegate_to: noc01.phx2.fedoraproject.org - name: halt -r the $vhost action: command /sbin/reboot - name: wait for $vhost to come back - up to 6 minutes local_action: wait_for host=$vhost port=22 delay=120 timeout=420 - name: tell nagios to unshush action: nagios action=unsilence host=${inventory_hostname_short} delegate_to: noc01.phx2.fedoraproject.org - name: look up vmlist action: virt command=list_vms register: newvmlist