En plus de vSphere Client, vous pouvez utiliser les commandes DCLI (Data Center CLI, interface de ligne de commande du centre de données) pour créer et gérer les classes de machine virtuelle. Les commandes DCLI vous offrent plus de flexibilité et d'accès aux options de configuration de machine virtuelle non disponibles dans vSphere Client.

Conditions requises

Connectez-vous à vCenter Server en utilisant le compte d'utilisateur racine et tapez dcli +i pour utiliser la DCLI en mode interactif.

Pour plus d'informations sur les commandes DCLI, reportez-vous à la section Présentation de l'exécution de commandes DCLI.

Commandes DCLI disponibles

Commande Description
namespacemanagement virtualmachineclasses create Créer un objet de classe de machine virtuelle.
namespacemanagement virtualmachineclasses delete Supprimer l'objet de classe de machine virtuelle.
namespacemanagement virtualmachineclasses get Renvoyer des informations sur une classe de machine virtuelle.
namespacemanagement virtualmachineclasses list Renvoyer des informations sur toutes les classes de machine virtuelle.
namespacemanagement virtualmachineclasses update Mettre à jour la configuration de l'objet de classe de machine virtuelle.

Créer une classe de machine virtuelle à l'aide de l'interface de ligne de commande du centre de données

En tant qu'administrateur vSphere, utilisez la commande DCLI com vmware vcenter namespacemanagement virtualmachineclasses create pour créer une classe de machine virtuelle. Vous pouvez configurer des propriétés de machine virtuelle telles que le CPU, la mémoire, les réservations de mémoire, les adaptateurs réseau, etc.

La commande prend les arguments suivants.
Argument Description
-h, --help Afficher ce message d'aide et quitter.
--config-spec CONFIG_SPEC VirtualMachineConfigSpec associée à la classe de machine virtuelle (entrée json).
--cpu-count CPU_COUNT Requis. Nombre de CPU configurés pour la machine virtuelle de cette classe (entier).
--cpu-reservation CPU_RESERVATION Pourcentage du total de CPU disponibles réservés pour une machine virtuelle (entier).
--description DESCRIPTION Description de la classe de machine virtuelle (chaîne).
--devices-dynamic-direct-path-io-devices DEVICES_DYNAMIC_DIRECT_PATH_IO_DEVICES Liste des périphériques Dynamic DirectPath I/O (entrée JSON).
--devices-vgpu-devices DEVICES_VGPU_DEVICES Liste des périphériques vGPU (entrée JSON).
--id ID Requis. Identifiant de la classe de machine virtuelle (chaîne).
--instance-storage-policy INSTANCE_STORAGE_POLICY Stratégie de stockage correspondant au stockage de l'instance (chaîne).
--instance-storage-volumes INSTANCE_STORAGE_VOLUMES Liste des volumes de stockage d'instance (entrée JSON).
--memory-mb MEMORY_MB Requis. Quantité de mémoire en Mo configurée pour la machine virtuelle de cette classe (entier).
--memory-reservation MEMORY_RESERVATION Pourcentage de mémoire disponible réservée pour une machine virtuelle de cette classe.

Utilisez les exemples suivants pour créer des classes de machine virtuelle avec des propriétés différentes.

CPU et mémoire

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 définition des paramètres numCPUs et memoryMB dans la spécification de configuration est facultative. Si vous choisissez de les définir, ils doivent avoir les mêmes valeurs que les champs de vAPI obligatoires --cpu-count et --memory-mb.

Réservations de CPU et de mémoire

Lorsque vous créez une classe de machine virtuelle à l'aide d'une spécification de configuration qui dispose d'une réservation de CPU et de mémoire, la réservation ou la limite de mémoire est en Mo pour memoryAllocation et en MHz pour 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

Adaptateur réseau

La commande suivante crée un adaptateur réseau de type 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

Dans ces exemples, la première commande crée une classe de machine virtuelle avec un vGPU en utilisant le champ --devices-vgpu-devices. La deuxième commande crée une classe de machine virtuelle avec un vGPU à l'aide d'une configSpec.
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

Stockage d'instances

Les exemples suivants créent des classes de machine virtuelle qui utilisent le stockage d'instance à l'aide des champs --instance-storage-volumes et --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
Le champ ID dans cet exemple est un ID virtualDisk bien connu qui représente un périphérique de stockage d'instance dans les machines virtuelles de service de VM.
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"}}]}]}'

Mettre à jour une classe de machine virtuelle à l'aide de l'interface de ligne de commande du centre de données

En tant qu'administrateur vSphere, utilisez la commande DCLI com vmware vcenter namespacemanagement virtualmachineclasses update pour modifier une classe de machine virtuelle.

En voici quelques exemples :

Modifier le CPU et la mémoire

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

Modifier les réservations de CPU et de mémoire

Lorsque vous créez une classe de machine virtuelle à l'aide d'une spécification de configuration qui dispose d'une réservation de CPU et de mémoire, la réservation ou la limite de mémoire est en Mo pour memoryAllocation et en MHz pour 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

Vous pouvez également utiliser la spécification de configuration pour mettre à jour les réservations de CPU et de mémoire. Toutes les réservations de CPU ou de mémoire existantes seront remplacées. En voici un exemple :

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}}'

Ajouter des 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

Supprimer vGPU

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

Ajouter un stockage d'instance

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

Supprimer le stockage de l'instance

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

Ajouter des adaptateurs réseau

Cette commande ajoute un stockage d'instance et une carte réseau e1000 à la classe de machine virtuelle.

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

Spécification de configuration vide

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

Tâches suivantes

Les classes de machine virtuelle que vous créez avec la DCLI deviennent disponibles dans vCenter Server. Vous pouvez utiliser vSphere Client pour attribuer ces classes de machine virtuelle à un espace de noms. Reportez-vous à la section Associer une classe de machine virtuelle à un espace de noms à l'aide de vSphere Client.