Ansible Pilot

Add a New Hard Disk to VMware vSphere Virtual Machine - Ansible module vmware_guest_disk

How to automate the addition of a 1GB size Hard Disk to VMware Virtual Machine guest named “myvm” using Ansible Playbook and vmware_guest_disk module.

May 24, 2022
Access the Complete Video Course and Learn Quick Ansible by 200+ Practical Lessons

How to Add a new hard disk to VMware vSphere Virtual Machine with Ansible?

I’m going to show you a live demo and some simple Ansible code. I’m Luca Berton and welcome to today’s episode of Ansible Pilot.

Ansible Add disk to VMware vSphere Virtual Machine


The following parameters are useful in order to Add disk to VMware vSphere Virtual Machine using the module vmware_guest_disk.

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 disk configuration, in this add a new disk to the virtual machine.

The mandatory parameters are only datacenter and unit_number.

The datacenter parameter specifies which datacenter name the virtual machine belongs to, for resources allocations.

The disk must be connected to a SCSI controller inside the virtual machine, so you should specify all the small details like scsi_controller, unit_number, and scsi_type.

You might be interested in deep-dive some performance analysis to property adjust these parameters.

You could specify the disk size via various parameters according to the needed size unit: kb, MB, GB, TB, etc.

One most important parameter is the disk_mode, default to persistent mode, other options are independent_persistent and independent_nonpersistent.

The Best Resources For Ansible

Video Course

Printed Book



How to Add a disk to VMware vSphere Virtual Machine with Ansible. I’m going to show you how to add a 1GB additional disk to a Virtual Machine named “myvm” using Ansible Playbook in a SCSI controller number 1 and unit number 1.


- name: vm disk demo
  hosts: localhost
  become: false
  gather_facts: false
    - community.vmware
    - include_vars: vars.yml
    - name: add disk to vm
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: "{{ vcenter_validate_certs }}"
        datacenter: "{{ vcenter_datacenter }}"
        name: "{{ vm_name }}"
          - size_gb: "{{ vm_disk_gb }}"
            type: "{{ vm_disk_type }}"
            datastore: "{{ vm_disk_datastore }}"
            state: present
            scsi_controller: "{{ vm_disk_scsi_controller }}"
            unit_number: "{{ vm_disk_scsi_unit }}"
            scsi_type: "{{ vm_disk_scsi_type }}"
            disk_mode: "{{ vm_disk_mode }}"
vcenter_hostname: ""
vcenter_datacenter: "vmwaredatacenter"
vcenter_validate_certs: false
vcenter_username: "[email protected]"
vcenter_password: "MySecretPassword123"
vm_name: "myvm"
vm_disk_gb: 1
vm_disk_type: "thin"
vm_disk_datastore: "datastore"
vm_disk_scsi_controller: 1
vm_disk_scsi_unit: 1
vm_disk_scsi_type: 'paravirtual'
vm_disk_mode: 'persistent'


$ ansible-playbook vm_add_disk.yml 
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'
PLAY [vm disk demo] *******************************************************************************
TASK [include_vars] *******************************************************************************
ok: [localhost]
TASK [add disk to vm] *****************************************************************************
changed: [localhost]
PLAY RECAP ****************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

before execution

vmware_guest_disk before execution

after execution

vmware_guest_disk after execution

code with ❤️ in GitHub


Now you know how to Add disk to VMware vSphere Virtual Machine with Ansible.

Subscribe to the YouTube channel, Medium, Website, Twitter, and Substack to not miss the next episode of the Ansible Pilot.


Learn the Ansible automation technology with some real-life examples in my

My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps

BUY the Complete PDF BOOK to easily Copy and Paste the 250+ Ansible code

Want to keep this project going? Please donate

Access the Complete Video Course and Learn Quick Ansible by 200+ Practical Lessons
Follow me

Subscribe not to miss any new releases