Prism Element v2.0: Cloud-init VM Customisation

June 7, 2022

by Chris Rasmussen

Intended Audience Level: Beginner/Intro

Code Sample Type: Snippet

Nutanix Technologies: Prism Element

Minimum Product Version: 5.16

Script/Code Language: JSON Payload

REST API Sample? Yes

REST API Version: v2.0

This code sample is a JSON payload designed for use with API test and development applications such as Postman or with custom scripts written by the user. Please note the use of {{variables}} through this code sample – they must be replaced with data relevant for your environment.

Code Sample Details

This section may be empty if additional code sample details are not available.

JSON payload to create a VM using the Nutanix Prism Element v2.0 APIs. Please make sure you replace all {{variable}} instances with values appropriate for your environment and the ssh-rsa key with an SSH public key valid for your virtual machines.

{
    "name": "{{vm_name}}",
    "memory_mb": 4096,
    "num_vcpus": 2,
    "description": "",
    "num_cores_per_vcpu": 1,
    "timezone": "UTC",
    "boot": {
        "uefi_boot": false,
        "boot_device_order": [
            "CDROM",
            "DISK",
            "NIC"
        ]
    },
    "vm_disks": [
        {
            "is_cdrom": false,
            "disk_address": {
                "device_bus": "scsi"
            },
            "vm_disk_clone": {
                "disk_address": {
                    "vmdisk_uuid": "{{cloud_init_image_uuid}}"
                },
                "minimum_size": 10737418240
            }
        }
    ],
    "vm_nics": [
        {
            "network_uuid": "{{subnet_uuid}}",
            "is_connected": true
        }
    ],
    "hypervisor_type": "ACROPOLIS",
    "vm_customization_config": {
        "userdata": "#cloud-config\nusers:\n  - name: nutanix\n    ssh-authorized-keys:\n      - ssh-rsa KEY\n    sudo: ['ALL=(ALL) NOPASSWD:ALL']\n    groups: sudo\n    shell: /bin/bash",
        "files_to_inject_list": []
    },
    "vm_features": {
        "AGENT_VM": false
    }
}