community.vmware.vmware_guest_file_operation – Files operation in a VMware guest operating system without network
Note
This plugin is part of the community.vmware collection (version 1.17.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.vmware
.
To use it in a playbook, specify: community.vmware.vmware_guest_file_operation
.
Synopsis
Module to copy a file to a VM, fetch a file from a VM and create or delete a directory in the guest OS.
Requirements
The below requirements are needed on the host that executes this module.
python >= 2.6
PyVmomi
requests
Parameters
Parameter |
Comments |
---|---|
The cluster hosting the virtual machine. If set, it will help to speed up virtual machine search. |
|
Copy file to vm without requiring network. |
|
File destination, path must be exist. |
|
Overwrite or not. Choices:
|
|
File source absolute or relative. |
|
The datacenter hosting the virtual machine. If set, it will help to speed up virtual machine search. |
|
Create or delete a directory. Can be used to create temp directory inside guest using mktemp operation. mktemp sets variable mktemp operation option is added in version 2.8. |
|
Operation to perform. Choices:
|
|
Directory path. Required for |
|
Temporary directory prefix. Required for |
|
Not required. Choices:
|
|
Temporary directory suffix. Required for |
|
Get file from virtual machine without requiring network. |
|
File destination on localhost, path must be exist. |
|
The file on the remote system to fetch. This must be a file, not a directory. |
|
Destination folder, absolute path to find an existing guest or create the new guest. The folder should include the datacenter. ESX’s datacenter is ha-datacenter Used only if Examples:
|
|
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 Environment variable support added in Ansible 2.6. |
|
The password of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable Environment variable support added in Ansible 2.6. |
|
The port number of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable Environment variable support added in Ansible 2.6. Default: 443 |
|
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 This feature depends on a version of pyvmomi greater than v6.7.1.2018.12 |
|
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 |
|
The username of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable Environment variable support added in Ansible 2.6. |
|
Allows connection when SSL certificates are not valid. Set to If the value is not specified in the task, the value of environment variable Environment variable support added in Ansible 2.6. If set to Choices:
|
|
Name of the virtual machine to work with. |
|
The VMware identification method by which the virtual machine will be identified. Choices:
|
|
The password used to login-in to the virtual machine. |
|
The user to login in to the virtual machine. |
Notes
Note
Tested on vSphere 6
Only the first match against vm_id is used, even if there are multiple matches
All modules requires API write access and hence is not supported on a free ESXi license.
Examples
- name: Create directory inside a vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
directory:
path: "/test"
operation: create
recurse: no
delegate_to: localhost
- name: copy file to vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
copy:
src: "files/test.zip"
dest: "/root/test.zip"
overwrite: False
delegate_to: localhost
- name: fetch file from vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
fetch:
src: "/root/test.zip"
dest: "files/test.zip"
delegate_to: localhost
Authors
Stéphane Travassac (@stravassac)