vmware_tools – Execute tasks inside a VM via VMware Tools
New in version 2.8.
Synopsis
- Use VMware tools to run tasks in, or put/fetch files to guest operating systems running in VMware infrastructure.
- In case of Windows VMs, set
ansible_shell_type
topowershell
. - Does not work with ‘become’.
Requirements
The below requirements are needed on the local master node that executes this connection.
- pyvmomi (Python library)
- requests (Python library)
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
exec_command_sleep_interval float | Default: 0.5 | var: ansible_vmware_tools_exec_command_sleep_interval | Time in seconds to sleep between execution of command. |
executable - | Default: "/bin/sh" | ini entries: [defaults] env:ANSIBLE_EXECUTABLE var: ansible_executable var: ansible_vmware_tools_executable | shell to use for execution inside container |
file_chunk_size integer | Default: 128 | var: ansible_vmware_tools_file_chunk_size | File chunk size. (Applicable when writing a file to disk, example: using the fetch module.) |
validate_certs boolean |
| env:VMWARE_VALIDATE_CERTS var: ansible_vmware_validate_certs | Verify SSL for the connection. Note: This will validate certs for both vmware_host and the ESXi host running the VM. |
vm_password - / required | var: ansible_password var: ansible_vmware_tools_password | Password for the user in guest operating system. | |
vm_path - / required | var: ansible_vmware_guest_path | VM path absolute to the connection. vCenter Example: Datacenter/vm/Discovered virtual machine/testVM .ESXi Host Example: ha-datacenter/vm/testVM .Must include VM name, appended to 'folder' as would be passed to vmware_guest. Needs to include vm between the Datacenter and the rest of the VM path. Datacenter default value for ESXi server is ha-datacenter .Folder vm is not visible in the vSphere Web Client but necessary for VMware API to work. | |
vm_user - / required | var: ansible_user var: ansible_vmware_tools_user | VM username. | |
vmware_host - / required | env:VI_SERVER env:VMWARE_HOST var: ansible_host var: ansible_vmware_host | FQDN or IP Address for the connection (vCenter or ESXi Host). | |
vmware_password - / required | env:VI_PASSWORD env:VMWARE_PASSWORD var: ansible_vmware_password | Password for the connection. | |
vmware_port - | Default: 443 | env:VI_PORTNUMBER env:VMWARE_PORT var: ansible_port var: ansible_vmware_port | Port for the connection. |
vmware_user - / required | env:VI_USERNAME env:VMWARE_USER var: ansible_vmware_user | Username for the connection. Requires the following permissions on the VM: - VirtualMachine.GuestOperations.Execute - VirtualMachine.GuestOperations.Modify - VirtualMachine.GuestOperations.Query |
Examples
# example vars.yml --- ansible_connection: vmware_tools ansible_vmware_host: vcenter.example.com ansible_vmware_user: [email protected] ansible_vmware_password: Secr3tP4ssw0rd!12 ansible_vmware_validate_certs: no # default is yes # vCenter Connection VM Path Example ansible_vmware_guest_path: DATACENTER/vm/FOLDER/{{ inventory_hostname }} # ESXi Connection VM Path Example ansible_vmware_guest_path: ha-datacenter/vm/{{ inventory_hostname }} ansible_vmware_tools_user: root ansible_vmware_tools_password: MyR00tPassw0rD # if the target VM guest is Windows set the 'ansible_shell_type' to 'powershell' ansible_shell_type: powershell # example playbook_linux.yml --- - name: Test VMware Tools Connection Plugin for Linux hosts: linux tasks: - command: whoami - ping: - copy: src: foo dest: /home/user/foo - fetch: src: /home/user/foo dest: linux-foo flat: yes - file: path: /home/user/foo state: absent # example playbook_windows.yml --- - name: Test VMware Tools Connection Plugin for Windows hosts: windows tasks: - win_command: whoami - win_ping: - win_copy: src: foo dest: C:\Users\user\foo - fetch: src: C:\Users\user\foo dest: windows-foo flat: yes - win_file: path: C:\Users\user\foo state: absent
Status
- This connection is not guaranteed to have a backwards compatible interface. [preview]
- This connection is maintained by the Ansible Community. [community]
Authors
- Deric Crago <deric.crago@gmail.com>
Hint
If you notice any issues in this documentation, you can edit this document to improve it.
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/connection/vmware_tools.html