ansible.builtin.vmware_guest_sendkey (v2.9.24) — module

Send USB HID codes to the Virtual Machine's keyboard.

| "added in version" 2.9 of ansible.builtin"

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

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.24

Description

This module is used to send keystrokes to given virtual machine.

All parameters and VMware object names are case sensitive.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Send list of keys to virtual machine
  vmware_guest_sendkey:
    validate_certs: no
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "{{ folder_name }}"
    name: "{{ vm_name }}"
    keys_send:
      - TAB
      - TAB
      - ENTER
  delegate_to: localhost
  register: keys_num_sent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Send list of keys to virtual machine using MoID
  vmware_guest_sendkey:
    validate_certs: no
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "{{ folder_name }}"
    moid: vm-42
    keys_send:
      - CTRL_ALT_DEL
  delegate_to: localhost
  register: ctrl_alt_del_sent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Send a string to virtual machine
  vmware_guest_sendkey:
    validate_certs: no
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    folder: "{{ folder_name }}"
    name: "{{ vm_name }}"
    string_send: "user_logon"
  delegate_to: localhost
  register: keys_num_sent

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 C(name) or C(uuid) is not supplied.
    type: str

name:
    description:
    - Name of the virtual machine.
    - This is a required parameter, if parameter C(uuid) or C(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 C(VMWARE_PORT)
      will be used instead.
    - Environment variable support added in Ansible 2.6.
    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 C(name) or C(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. ESXi server'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

cluster:
    description:
    - The name of cluster where the virtual machine is running.
    - This is a required parameter, if C(esxi_hostname) is not set.
    - C(esxi_hostname) and C(cluster) are mutually exclusive parameters.
    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 C(VMWARE_HOST)
      will be used instead.
    - Environment variable support added in Ansible 2.6.
    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 C(VMWARE_PASSWORD)
      will be used instead.
    - Environment variable support added in Ansible 2.6.
    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 C(VMWARE_USER)
      will be used instead.
    - Environment variable support added in Ansible 2.6.
    type: str

keys_send:
    description:
    - The list of the keys will be sent to the virtual machine.
    - Valid values are C(ENTER), C(ESC), C(BACKSPACE), C(TAB), C(SPACE), C(CAPSLOCK),
      C(DELETE), C(CTRL_ALT_DEL), C(CTRL_C) and C(F1) to C(F12), C(RIGHTARROW), C(LEFTARROW),
      C(DOWNARROW), C(UPARROW).
    - If both C(keys_send) and C(string_send) are specified, keys in C(keys_send) list
      will be sent in front of the C(string_send).
    type: list

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 C(VMWARE_PROXY_HOST)
      will be used instead.
    - This feature depends on a version of pyvmomi greater than v6.7.1.2018.12
    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 C(VMWARE_PROXY_PORT)
      will be used instead.
    required: false
    type: int

string_send:
    description:
    - The string will be sent to the virtual machine.
    - This string can contain valid special character, alphabet and digit on the keyboard.
    type: str

esxi_hostname:
    description:
    - The ESXi hostname where the virtual machine is running.
    - This is a required parameter, if C(cluster) is not set.
    - C(esxi_hostname) and C(cluster) are mutually exclusive parameters.
    type: str

validate_certs:
    default: true
    description:
    - Allows connection when SSL certificates are not valid. Set to C(false) when certificates
      are not trusted.
    - If the value is not specified in the task, the value of environment variable C(VMWARE_VALIDATE_CERTS)
      will be used instead.
    - Environment variable support added in Ansible 2.6.
    - If set to C(true), please make sure Python >= 2.7.9 is installed on the given machine.
    type: bool

Outputs

sendkey_info:
  description: display the keys and the number of keys sent to the virtual machine
  returned: always
  sample:
    keys_send:
    - SPACE
    - DOWNARROW
    - DOWNARROW
    - ENTER
    keys_send_number: 4
    returned_keys_send_number: 4
    string_send: null
    virtual_machine: test_vm
  type: dict