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.
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
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
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
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
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.