Además de vSphere Client, puede utilizar los comandos de la CLI del centro de datos (DCLI) para crear y administrar las clases de máquina virtual. Los comandos de la DCLI ofrecen más flexibilidad y acceso a las opciones de configuración de máquina virtual que no están disponibles en vSphere Client.

Requisitos previos

Inicie sesión en vCenter Server con la cuenta de usuario raíz y escriba dcli +i para utilizar DCLI en modo interactivo.

Para obtener información sobre los comandos de la DCLI, consulte Descripción de la ejecución de comandos de la DCLI.

Comandos de DCLI disponibles

Comando Descripción
namespacemanagement virtualmachineclasses create Cree un objeto de clase de máquina virtual.
namespacemanagement virtualmachineclasses delete Elimine el objeto de clase de máquina virtual.
namespacemanagement virtualmachineclasses get Devuelva información sobre una clase de máquina virtual.
namespacemanagement virtualmachineclasses list Devuelva información sobre todas las clases de máquina virtual.
namespacemanagement virtualmachineclasses update Actualice la configuración del objeto de clase de máquina virtual.

Crear una clase de máquina virtual mediante la CLI del centro de datos

Como administrador de vSphere, utilice el comando com vmware vcenter namespacemanagement virtualmachineclasses create de la DCLI para crear una clase de máquina virtual. Puede configurar propiedades de máquina virtual como CPU, memoria, reservas de memoria, adaptadores de red, etc.

El comando utiliza los siguientes argumentos.
Argumento Descripción
-h, --help Muestra este mensaje de ayuda y sal.
--config-spec CONFIG_SPEC Una instancia de VirtualMachineConfigSpec asociada a la clase de máquina virtual (entrada json).
--cpu-count CPU_COUNT Requerido. Número de CPU configuradas para la máquina virtual de esta clase (entero).
--cpu-reservation CPU_RESERVATION Porcentaje del total de CPU disponibles reservado para una máquina virtual (entero).
--description DESCRIPTION Descripción de la clase de máquina virtual (cadena).
--devices-dynamic-direct-path-io-devices DEVICES_DYNAMIC_DIRECT_PATH_IO_DEVICES Lista de dispositivos de DirectPath I/O dinámicos (entrada json).
--devices-vgpu-devices DEVICES_VGPU_DEVICES Lista de dispositivos de vGPU (entrada json).
--id ID Requerido. Identificador de la clase de máquina virtual (cadena).
--instance-storage-policy INSTANCE_STORAGE_POLICY Directiva de almacenamiento correspondiente al almacenamiento de instancias (cadena).
--instance-storage-volumes INSTANCE_STORAGE_VOLUMES Lista de volúmenes de almacenamiento de instancias (entrada json).
--memory-mb MEMORY_MB Requerido. La cantidad de memoria en MB configurada para la máquina virtual de esta clase (entero).
--memory-reservation MEMORY_RESERVATION El porcentaje de memoria disponible reservado para una máquina virtual de esta clase.

Utilice los siguientes ejemplos para crear clases de máquina virtual con propiedades diferentes.

CPU y memoria

com vmware vcenter namespacemanagement virtualmachineclasses create --id cpu-mem-class --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","numCPUs":2,"memoryMB":2048}'

La configuración de numCPUs y memoryMB en la especificación de configuración es opcional. Si decidió configurarlos, deben tener los mismos valores que los campos de vAPI --cpu-count y --memory-mb obligatorios.

Reservas de CPU y memoria

Cuando se crea una clase de máquina virtual mediante una especificación de configuración que tiene una reserva de CPU y memoria, el límite o la reserva de memoria se encuentra en MB para memoryAllocation y en MHz para cpuAllocation.

com vmware vcenter namespacemanagement virtualmachineclasses create --id cpu-res-class-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","numCPUs":2,"memoryMB":2048,"cpuAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200},"memoryAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200}}' --cpu-count 2 --memory-mb 2048

Adaptador de red

El siguiente comando crea un adaptador de red de tipo E1000.
com vmware vcenter namespacemanagement virtualmachineclasses create --id class-w-e1000 --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualE1000","key":-100}}]}'

vGPU

En estos ejemplos, el primer comando crea una clase de máquina virtual con una vGPU mediante el campo --devices-vgpu-devices. El segundo comando crea una clase de máquina virtual con una vGPU mediante una especificación de configuración.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-1 --devices-vgpu-devices '[{"profile_name": "mockup-vmiop-8c"}]' --memory-reservation 100 --cpu-count 2 --memory-mb 4096
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-2 --cpu-count 2 --memory-mb 4096 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop-8c"}}}]}' --memory-reservation 100

Almacenamiento de instancias

Los siguientes ejemplos crean clases de máquinas virtuales que utilizan el almacenamiento de instancias mediante los campos --instance-storage-volumes y --instance-storage-policy.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-ist-1 --instance-storage-volumes '[{"size":47}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0" --cpu-count 2 --memory-mb 4096
El campo ID de este ejemplo es un identificador de disco virtual conocido que representa un dispositivo de almacenamiento de instancias en las máquinas virtuales de servicio de máquina virtual.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-ist-2 --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":49283072,"vDiskId":{"_typeName":"ID","id":"e28d4352-1d1e-431b-b3f7-528bef5838a0"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]}]}'

Actualizar una clase de máquina virtual mediante la CLI del centro de datos

Como administrador de vSphere, para modificar una clase de máquina virtual utilice el comando DCLI com vmware vcenter namespacemanagement virtualmachineclasses update.

Utilice lo siguiente como ejemplo.

Modificar CPU y memoria

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-mem-class 
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class cpu-mem-class --cpu-count 4 --memory-mb 4096

Modificar reservas de CPU y memoria

Cuando se crea una clase de máquina virtual mediante una especificación de configuración que tiene una reserva de CPU y memoria, el límite o la reserva de memoria se encuentra en MB para memoryAllocation y en MHz para cpuAllocation.

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-res-class-1
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class cpu-res-class-1 --cpu-reservation 100 --memory-reservation 100
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-res-class-1

También puede utilizar las especificaciones de configuración para actualizar las reservas de CPU y memoria. Se sobrescribirá cualquier reserva de CPU o memoria existente. Utilice lo siguiente como ejemplo:

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class  cpu-res-class-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","cpuAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200},"memoryAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200}}'

Agregar vGPU

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class class-w-e1000 
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class class-w-e1000 --devices-vgpu-devices '[{"profile_name": "mockup-vmiop-8c"}]' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class class-w-e1000
 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop-8c"}}},{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop"}}}]}' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1

Eliminar vGPU

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --devices-vgpu-devices '[]'
 com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1

Agregar almacenamiento de instancias

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --instance-storage-volumes '[{"size":47}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0"
 com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --instance-storage-volumes '[{"size":51},{"size":50}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0"
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":52428800,"vDiskId":{"_typeName":"ID","id":"cc737f33-2aa3-4594-aa60-df7d6d4cb984"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]}]}'
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2

Eliminar almacenamiento de instancias

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-1 --instance-storage-volumes '[]' --instance-storage-policy ""
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-1

Agregar adaptadores de red

Este comando agrega un almacenamiento de instancias y una NIC e1000 a la clase de máquina virtual.

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":52428800,"vDiskId":{"_typeName":"ID","id":"cc737f33-2aa3-4594-aa60-df7d6d4cb984"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]},{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualE1000","key":-100}}]}' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2

Especificación de configuración vacía

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class class-w-e1000 --config-spec ''

Qué hacer a continuación

Las clases de máquinas virtuales que se crean con DCLI pasan a estar disponibles en vCenter Server. Puede utilizar vSphere Client para asignar estas clases de máquina virtual a un espacio de nombres. Consulte Asociar una clase de máquina virtual a un espacio de nombres mediante vSphere Client.