community.vmware.vmware_guest_controller (4.2.0) — module

Manage disk or USB controllers related to virtual machine in given vCenter infrastructure

Authors: Diane Wang (@Tomorrow9) <dianew@vmware.com>

Install collection

Install with ansible-galaxy collection install community.vmware:==4.2.0


Add to requirements.yml

  collections:
    - name: community.vmware
      version: 4.2.0

Description

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.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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

Inputs

    
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

Outputs

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