Ansible Pilot

Expand a Virtual Disk in VMware vSphere Virtual Machine - Ansible module vmware_guest_disk

How to automate the expansion from 1GB to 2GB size Virtual Disk connected to VMware Virtual Machine guest named “myvm” using Ansible Playbook and vmware_guest_disk module.

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

How to Expand a Virtual Disk in 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 Expand a Virtual Disk in VMware vSphere Virtual Machine

Let’s talk about the Ansible module vmware_guest_disk. The full name is community.vmware.vmware_guest_disk, which means that is part of the collection of modules to interact with VMware, community-supported. It manages disks related to a virtual machine in a given vCenter infrastructure.

Parameters

The following parameters are useful in order to Expand a Virtual Disk in 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 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 expansion, a disk is connected to a 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-diving into some performance analysis to properly 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

Certifications

Video Course

Printed Book

eBooks

demo

How to Expand a Virtual Disk in VMware vSphere Virtual Machine with Ansible. I’m going to show you how to expand the size of an additional disk connected to a Virtual Machine named “myvm” using Ansible Playbook. The disk is connected to a SCSI controller number 1 and has unit number 1. The beginning of the demo has a size of 1 GB and we would like to expand it to 2 GB.

code

---
- name: vm disk demo
  hosts: localhost
  become: false
  gather_facts: false
  collections:
    - community.vmware
  pre_tasks:
    - include_vars: vars.yml
  tasks:
    - name: expand disk in vm
      vmware_guest_disk:
        hostname: "{{ vcenter_hostname }}"
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        validate_certs: "{{ vcenter_validate_certs }}"
        datacenter: "{{ vcenter_datacenter }}"
        name: "{{ vm_name }}"
        disk:
          - 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_unit }}"
            scsi_type: "{{ vm_disk_scsi_type }}"
            disk_mode: "{{ vm_disk_mode }}"
---
vcenter_hostname: "vmware.example.com"
vcenter_datacenter: "vmwaredatacenter"
vcenter_validate_certs: false
vcenter_username: "[email protected]"
vcenter_password: "MySecretPassword123"
vm_name: "myvm"
vm_disk_gb: 2
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'
localhost

execution

$ ansible-playbook vm_disk_expand.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 [expand disk in vm] **************************************************************************
changed: [localhost]
PLAY RECAP ****************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

idempotency

$ ansible-playbook vm_disk_expand.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 [expand disk in vm] **************************************************************************
ok: [localhost]
PLAY RECAP ****************************************************************************************
localhost                  : ok=2    changed=0    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

Recap

Now you know how to Expand a Virtual Disk in VMware vSphere Virtual Machine with Ansible. Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.

Academy

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