# how to get the ansible virt module to wait for a machine to finish shutting down

**URL:** <https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047>\
**Category:** Ansible Project\
**Created:** [April 3, 2016, 9:30am UTC](https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047 "2016-04-03T09:30:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rob\_Verduijn](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/rob_verduijn/32/2702_2.png) [@Rob\_Verduijn](https://forum.ansible.com/u/Rob_Verduijn)\
**Post date:** [April 3, 2016, 9:30am UTC](https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047/1 "2016-04-03T09:30:30Z")

</div>

Hello,

When shutting down a kvm guest using the task

- name: shut down kvm guest  
virt: name=kvm-guest state=shutdown

Ansible will continue when the virsh shutdown kvm-guest command is finished.

However I want it to wait for the guest to actually finnish the shutdown procedure.

Anybody who knows how to do this ?

Rob Verduijn

---

<div class="post-metadata">

**Author:** ![Nitin\_Mathur](https://avatars.discourse-cdn.com/v4/letter/n/f4b2a3/32.png) [@Nitin\_Mathur](https://forum.ansible.com/u/Nitin_Mathur)\
**Post date:** [October 27, 2016, 7:05pm UTC](https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047/2 "2016-10-27T19:05:20Z")

</div>

Were you able to figure this out? Or any suggestions??

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [October 27, 2016, 8:49pm UTC](https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047/3 "2016-10-27T20:49:17Z")

</div>

You can use a do until loop  
[https://docs.ansible.com/ansible/playbooks\_loops.html#do-until-loops](https://docs.ansible.com/ansible/playbooks_loops.html#do-until-loops)

- action: virt name=kvm-guest command=status  
&nbsp;&nbsp;&nbsp;register: result  
&nbsp;&nbsp;&nbsp;until: result.status.find("shutdown") != -1  
&nbsp;&nbsp;&nbsp;retries: 30  
&nbsp;&nbsp;&nbsp;delay: 5

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [October 27, 2016, 9:50pm UTC](https://forum.ansible.com/t/how-to-get-the-ansible-virt-module-to-wait-for-a-machine-to-finish-shutting-down/21047/4 "2016-10-27T21:50:58Z")

</div>

Hi,

Here's a snippet that I use:

- name: wait for the vm to shut down  
&nbsp;&nbsp;&nbsp;virt:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;command: status  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: "{{ inventory\_hostname }}"  
&nbsp;&nbsp;&nbsp;register: vmstatus  
&nbsp;&nbsp;&nbsp;until: vmstatus.status == 'shutdown'  
&nbsp;&nbsp;&nbsp;delegate\_to: "{{ vmhost }}"  
&nbsp;&nbsp;&nbsp;retries: 1500  
&nbsp;&nbsp;&nbsp;delay: 10

vmhost = the hypervisor on which the VM runs.

HTH,  
Patrick
