Ansible playbooks to manage vmware infrastructure.
Most of this playbooks use name as the parameter to identify a VM. However, name are not necessarily unique in a VMWare cluster. If this is the case, playbook should be modified to use uuid, which is a unique identifier to a VM.
A lot of vmware modules accept datacenter or cluster name as valid input parameters. This playbooks use the first option in most cases.
You can run the playbook as follows:
ansible-playbook -i 'localhost,' playbook.ymlExtra vars are prompted. You can run the playbook in a single command line passing the extra vars like this:
ansible-playbook -i 'localhost,' -e "extra_var1=extra_var_value1 extra_var2=extra_var_value2 ..." playbook.ymlGet summary information about a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Get a list of VMs from a Cluster.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
Get disk information for a virtual machine.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Get VMWare Machine Guest info.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
Get VM size, according to real storage use.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Get snapshots of a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Take snapshot from VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- snapshot_name: Snapshot name
Remove snapshot from VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- snapshot_name: Name of existent snapshot
Revert VM to snapshot.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- snapshot_name: Name of existent snapshot
Power on a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Power off a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Raise cpu number for a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- cpu_number: Number of CPUs
Raise cpu number for a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- memory_size: Size of memory
Configure os version to VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- os_version: OS Version
Set "hot add" values to VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Unset "hot add" values to VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Add disk to a VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Delete last disk from VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
Resizing disk in VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM Name
- scsi_controller: SCSI controller
- unit_number: Unit number
Rename VM.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM name
- new_vm_name: New vm name
Move VM to a new folder.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM name
- destination_folder: Destination folder
Upgrade vmware tools on VM. This playbook should be used if installed VMWare tools are the one provided by VMWare. If you are using VMWare tools provided by the OS, using native OS packages are recommended.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM name
Clone a new VM from a template. Another VM can be used as source.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- datastore: VMWare datastore
- vm_name: VM name
- template_name: Template name
- folder_name: Folder name
- cluster_name: Cluster name
Clone a new template from an existent template.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- datastore: VMWare datastore
- vm_name: VM name
- template_name: Template name
- folder_name: Folder name
- cluster_name: Cluster name
Remove a VM. Is probably a better idea to remove VMs according to uuid instead of names, due to the fact that VM names are not necessarily unique.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
- vm_name: VM name
Get cluster info.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
Get host info.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- esxi_hostname: ESXI hostname
Get DRS rules info.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
Get datastores.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
Get emptiest datastore.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
Get info about DVS portgroup.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password
- datacenter: VMWare datacenter
Get resource pool info.
Required input variables:
- vcenter_ip: vCenter IP or hostname
- vcenter_username: vCenter username
- vcenter_password: vCenter password