How to Stop a VMware vSphere Virtual Machine with Ansible?

I'm going to show you a live Playbook and some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot.

Ansible Stop a VMware vSphere Virtual Machine

  • community.vmware.vmware_guest_powerstate
  • Manages power states of virtual machines in vCenter

Let's talk about the Ansible module vmware_guest_powerstate.

The full name is community.vmware.vmware_guest_powerstate, which means that is part of the collection of modules to interact with VMware, community-supported.

It manages power states of virtual machines in vCenter.

Parameters

  • hostname string / username string / password string / datacenter string / validate_certs boolean - connection details
  • state string - present / powered-off / powered-on / reboot-guest / restarted / shutdown-guest / suspended
  • force boolean - no/yes
  • answer string - A list of questions to answer, should one or more arise while waiting for the task to be complete.

The following parameters are useful in order to Start a VMware vSphere Virtual Machine using the module vmware_guest_powerstate.

First of all, we need to establish the connection with VMware vSphere or VMware vCenter using a plethora of self-explicative parameters: hostname, username, password, datacenter, and validate_certs.

Once the connection is successfully established you could specify the desired power state, in this case "shutdown-guest" to gracefully ask the guest operating system to shutdown or "powered-off" to turn off the virtual machine guest.

You could also force the power state to change using the force parameter, default disabled.

Links

  • [community.vmware.vmware_guest_powerstate](https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_powerstate_module.html)

## Playbook

How to Stop a VMware vSphere Virtual Machine with Ansible.

I'm going to show you how to Stop the Virtual Machine named "myvm" from the power state "Powered On" to the power state "Powered Off" using Ansible Playbook. I'm going to try first the "shutdown-guest" operation to gracefully ask the guest operating system to shut down than the "powered-off" to forcefully turn off the virtual machine guest.

code

  • vm_stop.yml

```yaml

---

  • name: stop vm Playbook

hosts: localhost

become: false

gather_facts: false

collections:

- community.vmware

pre_tasks:

- include_vars: vars.yml

tasks:

- name: guest shutdown

vmware_guest_powerstate:

hostname: "{{ vcenter_hostname }}"

username: "{{ vcenter_username }}"

password: "{{ vcenter_password }}"

validate_certs: "{{ vcenter_validate_certs }}"

name: "{{ vm_name }}"

state: shutdown-guest

state_change_timeout: 120

register: shutdown

ignore_errors: true

- name: poweroff

vmware_guest_powerstate:

hostname: "{{ vcenter_hostname }}"

username: "{{ vcenter_username }}"