- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# vmware_deploy_ovf – Deploys a VMware virtual machine from an OVF or OVA file

New in version 2.7.

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- This module can be used to deploy a VMware VM from an OVF or OVA file

## Requirements

The below requirements are needed on the host that executes this module.

- pyvmomi

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
allow_duplicates boolean | Choices: no yes ← | Whether or not to allow duplicate VM names. ESXi allows duplicates, vCenter may not.
cluster string |  | Cluster to deploy to.
datacenter string | Default: "ha-datacenter" | Datacenter to deploy to.
datastore string | Default: "datastore1" | Datastore to deploy to. You can also specify datastore storage cluster. version_added: 2.9
deployment_option string |  | The key of the chosen deployment option.
disk_provisioning string | Choices: flat eagerZeroedThick monolithicSparse twoGbMaxExtentSparse twoGbMaxExtentFlat thin ← sparse thick seSparse monolithicFlat | Disk provisioning type.
fail_on_spec_warnings boolean | Choices: no ← yes | Cause the module to treat OVF Import Spec warnings as errors.
folder string |  | Absolute path of folder to place the virtual machine. If not specified, defaults to the value of `datacenter.vmFolder`. 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
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 Ansible 2.6.
inject_ovf_env boolean added in 2.8 | Choices: no yes | Force the given properties to be inserted into an OVF Environment and injected through VMware Tools.
name string |  | Name of the VM to work with. Virtual machine names in vCenter are not necessarily unique, which may be problematic.
networks dictionary | Default: {"VM Network": "VM Network"} | `key: value` mapping of OVF network name, to the vCenter network name.
ovf - |  | Path to OVF or OVA file to deploy. aliases: ova
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 Ansible 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 Ansible 2.6.
power_on boolean | Choices: no yes ← | Whether or not to power on the virtual machine after creation.
properties dictionary |  | The assignment of values to the properties found in the OVF as key value pairs.
proxy_host string added in 2.9 |  | 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 `VMWARE_PROXY_HOST` will be used instead. This feature depends on a version of pyvmomi greater than v6.7.1.2018.12
proxy_port integer added in 2.9 |  | 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 `VMWARE_PROXY_PORT` will be used instead.
resource_pool string | Default: "Resources" | Resource Pool to deploy to.
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 Ansible 2.6. aliases: admin, user
validate_certs boolean | Choices: no yes ← | 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 Ansible 2.6. If set to `yes`, please make sure Python >= 2.7.9 is installed on the given machine.
wait boolean | Choices: no yes ← | Wait for the host to power on.
wait_for_ip_address boolean | Choices: no ← yes | Wait until vCenter detects an IP address for the VM. This requires vmware-tools (vmtoolsd) to properly work after creation.

## Examples

    - vmware_deploy_ovf:
        hostname: '{{ vcenter_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        ovf: /path/to/ubuntu-16.04-amd64.ovf
        wait_for_ip_address: true
      delegate_to: localhost

    # Deploys a new VM named 'NewVM' in specific datacenter/cluster, with network mapping taken from variable and using ova template from an absolute path
    - vmware_deploy_ovf:
        hostname: '{{ vcenter_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        datacenter: Datacenter1
        cluster: Cluster1
        datastore: vsandatastore
        name: NewVM
        networks: "{u'VM Network':u'{{ ProvisioningNetworkLabel }}'}"
        validate_certs: no
        power_on: no
        ovf: /absolute/path/to/template/mytemplate.ova
      delegate_to: localhost

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
instance dictionary | always | metadata about the new virtual machine Sample: None

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Matt Martz (@sivel)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.