community.vmware.vsphere_copy module – Copy a file to a VMware datastore
Note
This module is part of the community.vmware collection (version 6.2.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.vsphere_copy.
Synopsis
- Upload files to a VMware datastore through a vCenter REST API.
Parameters
Parameter | Comments |
|---|---|
datacenter string | The datacenter on the vCenter server that holds the datastore. |
datastore string / required | The datastore to push files to. |
diskformat string added in community.vmware 4.2.0 | Optional argument - Set a diskformat for certain uploads like stream optimized VMDKs There is no official documentation, but it looks like Setting this for non-VMDK files might lead to undefined behavior and is not supported. Choices:
|
hostname string | The hostname or IP address of the vSphere vCenter server. If the value is not specified in the task, the value of environment variable |
password aliases: pass, pwd string | The password of the vSphere vCenter server. If the value is not specified in the task, the value of environment variable |
path aliases: dest string / required | The file to push to the datastore. |
port integer | The port number of the vSphere vCenter server. If the value is not specified in the task, the value of environment variable Default: |
proxy_host string | The 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 |
proxy_port integer | The 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 |
src aliases: name string / required | The file to push to vCenter. |
timeout integer | The timeout in seconds for the upload to the datastore. Default: |
username aliases: admin, user string | The username of the vSphere vCenter server. If the value is not specified in the task, the value of environment variable |
validate_certs boolean | 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:
|
Notes
Note
- This module ought to be run from a system that can access the vCenter or the ESXi directly and has the file to transfer. It can be the normal remote target or you can change it either by using
transport: localor usingdelegate_to. - All modules require API write access and hence are not supported on a free ESXi license.
- All variables and VMware object names are case sensitive.
- Modules may rely on the ‘requests’ python library, which does not use the system certificate store by default. You can specify the certificate store by setting the REQUESTS_CA_BUNDLE environment variable. Note having this variable set may cause a ‘false’ value for the ‘validate_certs’ option to be ignored in some cases. Example: ‘export REQUESTS_CA_BUNDLE=/path/to/your/ca_bundle.pem’
Examples
- name: Copy file to datastore using delegate_to
community.vmware.vsphere_copy:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
src: /some/local/file
datacenter: DC1 Someplace
datastore: datastore1
path: some/remote/file
delegate_to: localhost
- name: Copy file to datastore when datacenter is inside folder called devel
community.vmware.vsphere_copy:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
src: /some/local/file
datacenter: devel/DC1
datastore: datastore1
path: some/remote/file
delegate_to: localhost
- name: Copy file to datastore using other_system
community.vmware.vsphere_copy:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
src: /other/local/file
datacenter: DC2 Someplace
datastore: datastore2
path: other/remote/file
delegate_to: other_system
- name: Copy file to datastore using other_system
community.vmware.vsphere_copy:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
src: /other/local/streamOptimized.vmdk
datacenter: DC2 Someplace
datastore: datastore2
path: disk_imports/streamOptimized.vmdk
timeout: 360
diskformat: StreamVmdk
delegate_to: other_system
Collection links
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/vmware/vsphere_copy_module.html