How to create a Virtual Machine

  • Introduction

  • Scenario requirements

  • How to create a virtual machine

Introduction

This section shows you how to use Ansible to create a virtual machine.

Scenario requirements

You”ve already followed vmware_rest_collect_info and you”ve got the following variables defined:

  • my_cluster_info

  • my_datastore

  • my_virtual_machine_folder

  • my_cluster_info

How to create a virtual machine

In this example, we will use the vcenter_vm module to create a new guest.

- name: Create a VM
  vmware.vmware_rest.vcenter_vm:
    placement:
      cluster: "{{ my_cluster_info.id }}"
      datastore: "{{ my_datastore.datastore }}"
      folder: "{{ my_virtual_machine_folder.folder }}"
      resource_pool: "{{ my_cluster_info.value.resource_pool }}"
    name: test_vm1
    guest_OS: DEBIAN_8_64
    hardware_version: VMX_11
    memory:
      hot_add_enabled: true
      size_MiB: 1024
  register: _result

response

{
    "changed": true,
    "id": "vm-1106",
    "value": {
        "boot": {
            "delay": 0,
            "enter_setup_mode": false,
            "retry": false,
            "retry_delay": 10000,
            "type": "BIOS"
        },
        "boot_devices": [],
        "cdroms": {},
        "cpu": {
            "cores_per_socket": 1,
            "count": 1,
            "hot_add_enabled": false,
            "hot_remove_enabled": false
        },
        "disks": {
            "2000": {
                "backing": {
                    "type": "VMDK_FILE",
                    "vmdk_file": "[rw_datastore] test_vm1/test_vm1.vmdk"
                },
                "capacity": 17179869184,
                "label": "Hard disk 1",
                "scsi": {
                    "bus": 0,
                    "unit": 0
                },
                "type": "SCSI"
            }
        },
        "floppies": {},
        "guest_OS": "DEBIAN_8_64",
        "hardware": {
            "upgrade_policy": "NEVER",
            "upgrade_status": "NONE",
            "version": "VMX_11"
        },
        "identity": {
            "bios_uuid": "42388b7c-e8dd-5a0c-551c-b6d15b13477c",
            "instance_uuid": "50386c40-3d3f-769d-b65d-bcd8a33f40bb",
            "name": "test_vm1"
        },
        "instant_clone_frozen": false,
        "memory": {
            "hot_add_enabled": true,
            "size_MiB": 1024
        },
        "name": "test_vm1",
        "nics": {},
        "nvme_adapters": {},
        "parallel_ports": {},
        "power_state": "POWERED_OFF",
        "sata_adapters": {},
        "scsi_adapters": {
            "1000": {
                "label": "SCSI controller 0",
                "scsi": {
                    "bus": 0,
                    "unit": 7
                },
                "sharing": "NONE",
                "type": "PVSCSI"
            }
        },
        "serial_ports": {}
    }
}
Note: vcenter_vm accepts more parameters, however you may prefer to

start with a simple VM and use the vcenter_vm_hardware modules to tune it up afterwards. It”s easier this way to identify a potential problematical step.