community.vmware.vmware_guest_file_operation module – Files operation in a VMware guest operating system without network
Note
This module is part of the community.vmware collection (version 4.8.1).
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.
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 |
|
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: 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 folder: vm/folder2 folder: folder2 |
|
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 |
|
The password of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable |
|
The port number of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable Default: |
|
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 |
|
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 |
|
Timeout seconds for fetching or copying a file. Default: |
|
The username of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable |
|
Allows connection when SSL certificates are not valid. Set to If the value is not specified in the task, the value of environment variable 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
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.
All variables and VMware object names are case sensitive.
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: false
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
- name: If a timeout error occurs, specify a high(er) timeout value
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 }}"
timeout: 10000
copy:
src: "files/test.zip"
dest: "/root/test.zip"
overwrite: false
delegate_to: localhost