community / community.vmware / 4.2.0 / module / vmware_guest_controller Manage disk or USB controllers related to virtual machine in given vCenter infrastructure Authors: Diane Wang (@Tomorrow9) <dianew@vmware.com>community.vmware.vmware_guest_controller (4.2.0) — module
Install with ansible-galaxy collection install community.vmware:==4.2.0
collections: - name: community.vmware version: 4.2.0
This module can be used to add, remove disk controllers or USB controllers belonging to given virtual machine.
All parameters and VMware object names are case sensitive.
- name: Add disk and USB 3.0 controllers for virtual machine located by name community.vmware.vmware_guest_controller: hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" datacenter: "{{ datacenter_name }}" name: test_VM controllers: - state: present type: sata - state: present type: nvme - state: present type: usb3 delegate_to: localhost register: disk_controller_facts
- name: Remove disk controllers and USB 2.0 from virtual machine located by moid community.vmware.vmware_guest_controller: hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" datacenter: "{{ datacenter_name }}" moid: vm-33 controllers: - state: absent controller_number: 1 type: sata - state: absent controller_number: 0 type: nvme - state: absent type: usb2 delegate_to: localhost register: disk_controller_facts
moid: description: - Managed Object ID of the instance to manage if known, this is a unique identifier only within a single vCenter instance. - This is required if O(name) or O(uuid) is not supplied. type: str name: description: - Name of the virtual machine. - This is a required parameter, if parameter O(uuid) or O(moid) is not supplied. type: str port: default: 443 description: - The port number of the vSphere vCenter or ESXi server. - If the value is not specified in the task, the value of environment variable E(VMWARE_PORT) will be used instead. type: int uuid: description: - UUID of the instance to gather facts if known, this is VMware's unique identifier. - This is a required parameter, if parameter O(name) or O(moid) is not supplied. type: str folder: description: - Destination folder, absolute or relative path to find an existing guest. - This is a required parameter, only if multiple VMs are found with same name. - The folder should include the datacenter. ESX's datacenter is ha-datacenter - 'Examples:' - ' folder: /ha-datacenter/vm' - ' folder: ha-datacenter/vm' - ' folder: /datacenter1/vm' - ' folder: datacenter1/vm' - ' folder: /datacenter1/vm/folder1' - ' folder: datacenter1/vm/folder1' - ' folder: /folder1/datacenter1/vm' - ' folder: folder1/datacenter1/vm' - ' folder: /folder1/datacenter1/vm/folder2' type: str hostname: description: - The hostname or IP address of the vSphere vCenter or ESXi server. - If the value is not specified in the task, the value of environment variable E(VMWARE_HOST) will be used instead. type: str password: aliases: - pass - pwd description: - The password of the vSphere vCenter or ESXi server. - If the value is not specified in the task, the value of environment variable E(VMWARE_PASSWORD) will be used instead. type: str username: aliases: - admin - user description: - The username of the vSphere vCenter or ESXi server. - If the value is not specified in the task, the value of environment variable E(VMWARE_USER) will be used instead. type: str datacenter: default: ha-datacenter description: - The datacenter name to which virtual machine belongs to. type: str proxy_host: description: - Address of a proxy that will receive all HTTPS requests and relay them. - The format is a hostname or a IP. - If the value is not specified in the task, the value of environment variable E(VMWARE_PROXY_HOST) will be used instead. required: false type: str proxy_port: description: - Port of the HTTP proxy that will receive all HTTPS requests and relay them. - If the value is not specified in the task, the value of environment variable E(VMWARE_PROXY_PORT) will be used instead. required: false type: int sleep_time: default: 10 description: - The sleep time in seconds after VM reconfigure task completes, used when not get the updated VM controller facts after VM reconfiguration. - This parameter is not required. Maximum value is 600. type: int controllers: description: - A list of disk or USB controllers to add or remove. - Total 4 disk controllers with the same type are allowed per VM. - Total 2 USB controllers are allowed per VM, 1 USB 2.0 and 1 USB 3.0 or 3.1. - For specific guest OS, supported controller types please refer to VMware Compatibility Guide. elements: dict suboptions: bus_sharing: choices: - noSharing - physicalSharing - virtualSharing default: noSharing description: - Bus sharing type for SCSI controller. required: false type: str controller_number: choices: - 0 - 1 - 2 - 3 description: - Disk controller bus number. When O(controllers.state=absent), this parameter is required. - When O(controllers.type=usb2) or O(controllers.type=usb3), this parameter is not required. type: int state: choices: - present - absent description: - Add new controller or remove specified existing controller. - If set to V(absent), the specified controller will be removed from virtual machine when there is no disk or device attaching to it. - If specified controller is removed or not exist, no action will be taken only warning message. - If set to V(present), new controller with specified type will be added. - If the number of controller with specified controller type reaches it's maximum, no action will be taken only warning message. required: true type: str type: choices: - buslogic - lsilogic - lsilogicsas - paravirtual - sata - nvme - usb2 - usb3 description: - Type of disk or USB controller. - From vSphere 6.5 and virtual machine with hardware version 13, V(nvme) controller starts to be supported. required: true type: str type: list validate_certs: default: true description: - Allows connection when SSL certificates are not valid. Set to V(false) when certificates are not trusted. - If the value is not specified in the task, the value of environment variable E(VMWARE_VALIDATE_CERTS) will be used instead. type: bool use_instance_uuid: default: false description: - Whether to use the VMware instance UUID rather than the BIOS UUID. type: bool gather_disk_controller_facts: default: false description: - Whether to collect existing disk and USB controllers facts only. - When this parameter is set to V(true), O(controllers) parameter will be ignored. type: bool
disk_controller_status: description: metadata about the virtual machine's existing disk controllers or after adding or removing operation returned: always sample: nvme: '0': controller_busnumber: 0 controller_controllerkey: 100 controller_devicekey: 31000 controller_disks_devicekey: [] controller_label: NVME controller 0 controller_summary: NVME controller 0 controller_unitnumber: 30 sata: '0': controller_busnumber: 0 controller_controllerkey: 100 controller_devicekey: 15000 controller_disks_devicekey: - 16000 - 16001 controller_label: SATA controller 0 controller_summary: AHCI controller_unitnumber: 24 scsi: '0': controller_bus_sharing: noSharing controller_busnumber: 0 controller_controllerkey: 100 controller_devicekey: 1000 controller_disks_devicekey: - 2000 controller_label: SCSI controller 0 controller_summary: LSI Logic SAS controller_unitnumber: 3 '1': controller_bus_sharing: physicalSharing controller_busnumber: 1 controller_controllerkey: 100 controller_devicekey: 1001 controller_disks_devicekey: [] controller_label: SCSI controller 1 controller_summary: VMware paravirtual SCSI controller_unitnumber: 4 usb2: '0': controller_busnumber: 0 controller_controllerkey: 100 controller_devicekey: 7000 controller_disks_devicekey: [] controller_label: USB Controller controller_summary: Auto connect Disabled controller_unitnumber: 22 type: dict