vmware_guest_file_operation – Files operation in a VMware guest operating system without network¶
New in version 2.5.
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 | Choices/Defaults | Comments |
---|---|---|
cluster
-
|
The cluster hosting the virtual machine.
If set, it will help to speed up virtual machine search.
|
|
copy
-
|
Copy file to vm without requiring network.
Valid attributes are:
src: file source absolute or relative
dest: file destination, path must be exist
overwrite: False or True (not required, default False)
|
|
datacenter
-
|
The datacenter hosting the virtual machine.
If set, it will help to speed up virtual machine search.
|
|
directory
-
|
Create or delete directory.
Valid attributes are:
path: directory path to create or remove
operation: Valid values are create, delete
recurse (boolean): Not required, default (false)
|
|
fetch
-
added in 2.5 |
Get file from virtual machine without requiring network.
Valid attributes are:
src: The file on the remote system to fetch. This must be a file, not a directory
dest: file destination on localhost, path must be exist
|
|
folder
-
|
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
vm_id_type is inventory_path .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
|
|
hostname
string
|
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
VMWARE_HOST will be used instead.Environment variable support added in version 2.6.
|
|
password
string
|
The password of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable
VMWARE_PASSWORD will be used instead.Environment variable support added in version 2.6.
aliases: pass, pwd |
|
port
integer
added in 2.5 |
Default: 443
|
The port number of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable
VMWARE_PORT will be used instead.Environment variable support added in version 2.6.
|
username
string
|
The username of the vSphere vCenter or ESXi server.
If the value is not specified in the task, the value of environment variable
VMWARE_USER will be used instead.Environment variable support added in version 2.6.
aliases: admin, user |
|
validate_certs
boolean
|
|
Allows connection when SSL certificates are not valid. Set to
false when certificates are not trusted.If the value is not specified in the task, the value of environment variable
VMWARE_VALIDATE_CERTS will be used instead.Environment variable support added in version 2.6.
If set to
yes , please make sure Python >= 2.7.9 is installed on the given machine. |
vm_id
-
/ required
|
Name of the virtual machine to work with.
|
|
vm_id_type
-
|
|
The VMware identification method by which the virtual machine will be identified.
|
vm_password
-
/ required
|
The password used to login-in to the virtual machine.
|
|
vm_username
-
/ required
|
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
Examples¶
- name: Create directory inside a vm
vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
validate_certs: no
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
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
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
Status¶
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors¶
- Stéphane Travassac (@stravassac)
Hint
If you notice any issues in this documentation you can edit this document to improve it.