What you'll learn
- Introduction
- Parameters Overview
- Playbook Example
- Playbook
- Variables: `vars.yml`
- Inventory
- Execution
- before execution
- after execution
- Conclusion
Introduction
- **Module**: `community.vmware.vmware_guest_disk`
- **Purpose**: Manage disks related to virtual machines in a given vCenter infrastructure
The Ansible module `vmware_guest_disk` is part of the community-supported collection of modules for interacting with VMware. It manages disks associated with virtual machines within a specified vCenter infrastructure.
Parameters Overview
- **Connection Details**:
- `hostname` (string)
- `username` (string)
- `password` (string)
- `datacenter` (string)
- `validate_certs` (boolean)
- **SCSI Controller Details**:
- `scsi_controller` (string)
- `unit_number` (string)
- `scsi_type` (string)
- **Disk Size**:
- `size_kb` / `size_mb` / `size_gb` / `size_tb` (string)
- **Disk Mode**:
- `disk_mode` (string: `persistent`, `independent_persistent`, `independent_nonpersistent`)
To add a disk to a VMware vSphere Virtual Machine using the `vmware_guest_disk` module, you must first establish a connection to VMware vSphere or VMware vCenter. This is done using parameters such as `hostname`, `username`, `password`, `datacenter`, and `validate_certs`.
Once connected, you can specify the desired disk configuration to add a new disk to the virtual machine. The required parameters are `datacenter` and `unit_number`. The `datacenter` parameter identifies the datacenter to which the virtual machine belongs.
The disk must be connected to a SCSI controller inside the virtual machine, so parameters like `scsi_controller`, `unit_number`, and `scsi_type` are essential. You can specify the disk size using units like KB, MB, GB, or TB.
One crucial parameter is `disk_mode`, which defaults to `persistent`. Other options include `independent_persistent` and `independent_nonpersistent`.
For more detailed information, refer to the official [community.vmware.vmware_guest_disk](https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_guest_disk_module.html) documentation.
Playbook Example
I'll Playbooknstrate how to add a 1GB additional disk to a Virtual Machine named "`myvm`" using an Ansible Playbook. The disk will be added to SCSI controller number 1, unit number 1.
Playbook
- vm_add_disk.yml
```yaml
---
- name: vm disk Playbook
hosts: localhost
become: false
gather_facts: false
collections:
- community.vmware
pre_tasks:
- include_vars: vars.yml
tasks:
- name: add disk to 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_scsi_unit }}"
scsi