Die Nutanix REST API (v3) ermöglicht automatisierte VM-Bereitstellungen, was nützlich für Skripterstellung, CI/CD-Pipelines oder Massenbereitstellung von
VMs ist. Für weitere Informationen siehe Nutanix KB 6440 – Erstellen einer VM mit Nutanix REST API v3 und Nutanix API v3 – Erstellen einer Linux-VM mit Cloud-Init – Nutanix.dev.
Trend Micro empfiehlt die folgende VM-Konfiguration:
-
VM-Name:
Nutanix-rest-connector-vm -
vCPUs: 4 (1 Sockel × 4 vCPUs)
-
Speicher: 8 GB (8192 MB)
-
Festplatte: Von Image
Nutaminx-connector-imagegeklont -
Festplattenbus: IDE
-
Netzwerk: Subnetz
New-VLAN265(DHCP)
Bevor Sie beginnen, stellen Sie sicher, dass das erforderliche VM-Image bereits im
Nutanix Image Service hochgeladen wurde und dass das Zielnetzwerk-Subnetz (VLAN) erstellt
wurde.
Prozedur
- Erforderliche UUIDs sammelnDie REST-API erfordert UUIDs für Bilder und Subnetze anstelle von Namen.
- Holen Sie sich die Bild-UUID:
curl -u "admin:<password>" -k \ -H "Content-Type: application/json" \ -X POST https://<cluster-ip>:9440/api/nutanix/v3/images/list \ -d '{"kind":"image","filter":"name==Nutaminx-connector-image"}'-
Zweck: Abrufen der UUID des Bildes
Nutaminx-connector-image. -
Ausgabe: JSON einschließlich
metadata.uuid, zum Beispiel"metadata": { "uuid": "c63ef950-7ba5-4450-bb10-65fdf209c639", "name": "Nutaminx-connector-image"
Diese UUID wird verwendet, um das Startlaufwerk anzuhängen -
- Holen Sie die Subnetz-UUID.
curl -u "admin:<password>" -k \ -H "Content-Type: application/json" \ -X POST https://<cluster-ip>:9440/api/nutanix/v3/subnets/list \ -d '{"kind":"subnet","filter":"name==New-VLAN265"}'-
Zweck: Abrufen der UUID des Subnetzes
New-VLAN265. -
Ausgabe: JSON einschließlich
metadata.uuid, zum Beispiel"metadata": { "uuid": "06b5de80-6864-4871-b7b8-9e36849fb5a9", "name": "New-VLAN265" }
Diese UUID wird verwendet, um die NIC an die VM anzuhängen. -
- Holen Sie sich die Bild-UUID:
- Erstellen Sie die VM mit der Image-UUID und der Subnetz-UUID:
curl -u "admin:<password>" -k -H "Content-Type: application/json" \ -X POST https://<cluster-ip>:9440/api/nutanix/v3/vms \ -d '{ "spec": { "name": "Nutanix-rest-connector-vm", "resources": { "num_vcpus_per_socket": 4, "num_sockets": 1, "memory_size_mib": 8192, "disk_list": [ { "device_properties": { "disk_address": { "device_index": 0, "adapter_type": "IDE" } }, "data_source_reference": { "kind": "image", "uuid": "c63ef950-7ba5-4450-bb10-65fdf209c639" } } ], "nic_list": [ { "subnet_reference": { "kind": "subnet", "uuid": "06b5de80-6864-4871-b7b8-9e36849fb5a9" } } ] } }, "metadata": { "kind": "vm" } }'Definition der Schlüsselfelder
FeldBeschreibungnameName der VM (Nutanix-rest-connector-vm)num_vcpus_per_socketAnzahl der vCPUs in jedem Socketnum_socketsAnzahl der CPU-Sockelmemory_size_mibSpeicher in MiB (8192 = 8GB)disk_list.device_properties.disk_address.adapter_typeBustyp für die Festplatte (IDE)disk_list.data_source_reference.uuidUUID des Bildes, von dem geklont werden sollnic_list.subnet_reference.uuidUUID des Subnetzes für die VM-NICmetadata.kindMuss"vm"für die VM-Erstellung sein - Überprüfen Sie die VM-Erstellung, nachdem der Befehl abgeschlossen ist:
-
Prism UI: Überprüfen Sie die VMs-Seite für
Nutanix-rest-connector-vm -
ACLI:
acli vm.get Nutanix-rest-connector-vm-
REST-API:
curl -u "admin:<password>" -k \ -H "Content-Type: application/json" \ https://<cluster-ip>:9440/api/nutanix/v3/vms/<VM-UUID> -
- VM einschalten:
curl -u "admin:<password>" -k \ -H "Content-Type: application/json" \ -X POST https://<cluster-ip>:9440/api/nutanix/v3/vms/<VM-UUID>/set_power_state \ -d '{"transition":"ON"}'
