community.vmware.vmware_content_deploy_template (4.2.0) — module

Deploy Virtual Machine from template stored in content library.

Authors: Pavan Bidkar (@pgbidkar)

Install collection

Install with ansible-galaxy collection install community.vmware:==4.2.0


Add to requirements.yml

  collections:
    - name: community.vmware
      version: 4.2.0

Description

Module to deploy virtual machine from template in content library.

Content Library feature is introduced in vSphere 6.0 version.

vmtx templates feature is introduced in vSphere 67U1 and APIs for clone template from content library in 67U2.

This module does not work with vSphere version older than 67U2.

All variables and VMware object names are case sensitive.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Deploy Virtual Machine from template in content library
  community.vmware.vmware_content_deploy_template:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    template: rhel_test_template
    datastore: Shared_NFS_Volume
    folder: vm
    datacenter: Sample_DC_1
    name: Sample_VM
    resource_pool: test_rp
    state: present
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Deploy Virtual Machine from template in content library with PowerON State
  community.vmware.vmware_content_deploy_template:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    template: rhel_test_template
    content_library: test_content_library
    datastore: Shared_NFS_Volume
    folder: vm
    datacenter: Sample_DC_1
    name: Sample_VM
    resource_pool: test_rp
    state: poweredon
  delegate_to: localhost

Inputs

    
host:
    description:
    - Name of the ESX Host in datacenter in which to place deployed VM.
    - The host has to be a member of the cluster that contains the resource pool.
    - Required with O(resource_pool) to find resource pool details. This will be used
      as additional information when there are resource pools with same name.
    required: false
    type: str

name:
    aliases:
    - vm_name
    description:
    - The name of the VM to be deployed.
    required: true
    type: str

port:
    default: 443
    description:
    - The port number of the vSphere vCenter.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PORT)
      will be used instead.
    type: int

state:
    choices:
    - present
    - poweredon
    default: present
    description:
    - The state of Virtual Machine deployed from template in content library.
    - If set to V(present) and VM does not exists, then VM is created.
    - If set to V(present) and VM exists, no action is taken.
    - If set to V(poweredon) and VM does not exists, then VM is created with powered on
      state.
    - If set to V(poweredon) and VM exists, no action is taken.
    required: false
    type: str

folder:
    default: vm
    description:
    - Name of the folder in datacenter in which to place deployed VM.
    type: str

cluster:
    description:
    - Name of the cluster in datacenter in which to place deployed VM.
    - Required if O(resource_pool) is not specified.
    required: false
    type: str

library:
    aliases:
    - content_library
    - content_library_src
    description:
    - The name of the content library from where the template resides.
    required: false
    type: str

hostname:
    description:
    - The hostname or IP address of the vSphere vCenter server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_HOST)
      will be used instead.
    type: str

password:
    aliases:
    - pass
    - pwd
    description:
    - The password of the vSphere vCenter server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PASSWORD)
      will be used instead.
    type: str

protocol:
    choices:
    - http
    - https
    default: https
    description:
    - The connection to protocol.
    type: str

template:
    aliases:
    - template_src
    description:
    - The name of template from which VM to be deployed.
    required: true
    type: str

username:
    aliases:
    - admin
    - user
    description:
    - The username of the vSphere vCenter server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_USER)
      will be used instead.
    type: str

datastore:
    description:
    - Name of the datastore to store deployed VM and disk.
    - Required if O(datastore_cluster) is not provided.
    required: false
    type: str

log_level:
    choices:
    - debug
    - info
    - normal
    default: normal
    description:
    - The level of logging desired in this module.
    required: false
    type: str

datacenter:
    description:
    - Name of the datacenter, where VM to be deployed.
    required: true
    type: str

proxy_host:
    description:
    - 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 E(VMWARE_PROXY_HOST)
      will be used instead.
    required: false
    type: str

proxy_port:
    description:
    - 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 E(VMWARE_PROXY_PORT)
      will be used instead.
    required: false
    type: int

resource_pool:
    description:
    - Name of the resource pool in datacenter in which to place deployed VM.
    - Required if O(cluster) is not specified.
    - For default or non-unique resource pool names, specify O(host) and O(cluster).
    - C(Resources) is the default name of resource pool.
    required: false
    type: str

validate_certs:
    default: true
    description:
    - Allows connection when SSL certificates are not valid.
    - Set to V(false) when certificates are not trusted.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_VALIDATE_CERTS)
      will be used instead.
    type: bool

datastore_cluster:
    description:
    - Name of the datastore cluster to store deployed VM and disk.
    - Please make sure Storage DRS is active for recommended datastore from the given
      datastore cluster.
    - If Storage DRS is not enabled, datastore with largest free storage space is selected.
    - Required if O(datastore) is not provided.
    required: false
    type: str

Outputs

vm_deploy_info:
  description: Virtual machine deployment message and vm_id
  returned: on success
  sample:
    msg: Deployed Virtual Machine 'Sample_VM'.
    vm_id: vm-1009
  type: dict