Créer une machine virtuelle avec PowerCLI

I. Présentation

PowerCLI contient, bien évidemment, un command-let permettant la création d'une VM et de lui attribuer tout ce qu'il faut au niveau de la configuration matérielle virtuelle, et même de la placer dans un pool de ressources précis, sur un datastore (espace de stockage) précis, etc...

Ceci est très pratique et évite de passer par l'assistant de création de machines virtuelles, surtout lorsqu'on veut créer plusieurs machines virtuelles identiques (mise à part le nom) c'est beaucoup plus rapide de passer par une commande PowerCLI.

Pour se faire on utilise le command-let "New-VM" auquel on spécifie de nombreux paramètres permettant de configurer la machine virtuelle qui va être créé. Il est à noter que si vous créez la machine virtuelle via PowerCLI et que vous oubliez de lui ajouter un lecteur CD - par exemple, vous pouvez toujours l'ajouter par la suite en modifiant les paramètres de la VM à partir du client vSphere.

II. Les paramètres principaux

  • VMHost : Adresse IP ou nom de domaine de l'hôte sur lequel doit être créée la VM.
  • Name : Nom de la machine virtuelle à créer.
  • Datastore : Espace de stockage sur lequel vous souhaitez la stocké (qui doit être monté sur l'hôte ESX).
  • ResourcePool : Pool de ressource dans lequel la VM doit être placée.
  • NumCpu : Nombre de CPU à attribuer à la VM.
  • MemoryMB : Mémoire à attribuer à la VM en Mo (MemoryGB pour attribuer en Go).
  • DiskMB : Disque dur à attribuer à la VM en Mo (DiskGB pour attribuer en Go).
  • DiskStorageFormat : Type d'approvisionnement du disque dur ("thick" pour un approvisionnement immédiat ou "thin" pour un approvisionnement dynamique).
  • CD : Indiquez si vous souhaitez un lecteur CD sur la VM (pas besoin d'indiquer de valeur).
  • Floppy : Indiquez si vous souhaitez un lecteur disquette sur la VM (pas besoin d'indiquer de valeur).
  • GuestID : Identifiant du système d'exploitation invité.
  • Location : Indiquez le nom d'un dossier existant où vous souhaitez stocker votre VM.

III. La syntaxe

La syntaxe de la commande "New-VM" utilisable avec les paramètres que l'on vient de voir est la suivante :

New-VM -Paramètre1 valeur1 -Paramètre2 valeur2 ...

Il faut savoir qu'il faut obligatoirement préciser un hôte ou un pool de ressources lors de la création d'une VM, sinon ça échouera.

IV. Exemple n°1

Note : N'oubliez pas de vous connecter à votre serveur avant d'exécuter les commandes de création de VM.

Dans ce premier exemple, on crée une machine virtuelle sur l'hôte "192.168.1.2" que l'on appelle "MaVM1". Sans donner de précision sur le matériel (disque dur, mémoire, processeur), on verra que VMware attribue automatiquement 256 Mo de RAM, un processeur et un disque dur de 4 Go dans le cas où l'on ne précise pas ces informations.

Créer une machine virtuelle de cette manière n'a pas grand intérêt mais il faut savoir que c'est possible de la créer en indiquant uniquement son nom et l'hôte sur laquelle elle doit se trouver.

New-VM -VMHost 192.168.1.2 -Name MaVM1

newvm1

V. Exemple n°2

Désormais, on souhaite créer une machine virtuelle appelée "MaVM2" qui sera stockée sur la banque de données "datastore1", sur l'hôte "192.168.1.2". De plus, on lui attribuera 256 Mo de mémoire et 4 Go de disque dur en approvisionnement dynamique.

New-VM -VMHost 192.168.1.2 -Datastore datastore1 -Name MaVM2 -MemoryMB 256 -DiskGB 4 -DiskStorageFormat thin

VI. Exemple n°3

On repart de l'exemple n°2, en appelant la machine virtuelle "MaVM3" et en la plaçant directement dans le pool de ressources "Service informatique".

New-VM -VMHost 192.168.1.2 -Datastore datastore1 -Name MaVM2 -MemoryMB 256 -DiskGB 4 -DiskStorageFormat thin -ResourcePool "Service Informatique"

Les guillemets sont essentiels à partir du moment où la valeur est constituées d'un ou plusieurs espace(s).

newvm2

VII. Exemple n°4

On repart de l'exemple n°3, pour créer une VM identique à la seul différence que la VM "MaVM4" doit disposer d'un lecteur CD et d'un lecteur disquette.

New-VM -VMHost 192.168.1.2 -Datastore datastore1 -Name MaVM2 -MemoryMB 256 -DiskGB 4 -DiskStorageFormat thin -ResourcePool "Service Informatique" -CD -Floppy

newvm3

VIII. Exemple n°5

La VM "MaVM5" doit contenir 2 disques durs (4 Go et 10 Go), tout en ayant 512 Mo de RAM et en étant située sur l'hôte 192.168.1.2.

New-VM -VMHost 192.168.1.2 -Name MaVM5 -MemoryMB 512 -DiskGB 4,10

On utilise la syntaxe suivante pour donner plusieurs valeurs à un paramètre qui le permet : "valeur1,valeur2,valeur3,...".

IX. Exemple n°6

Pour la VM "MaVM6", on précise qu'Ubuntu sera l'hôte invité c'est à dire le système d'exploitation installé sur la machine virtuelle grâce aux paramètres "GuestID". Cette VM, aura 512 Mo de mémoire, 2 processeurs, un disque dur de 4 Go et sera située sur l'hôte 192.168.1.2.

New-VM -VMHost 192.168.1.2 -Name MaVM6 -MemoryMB 512 -DiskGB 4 -NumCpu 2 -GuestID ubuntuGuest

Il existe une liste de GuestID conséquente comme vous avez pu le remarquer en créant une VM via l'assistant lorsque vous indiquez l'OS qui sera installé sur la VM, je vous ai mis dans la partie 9 du tutoriel un listing des différents GuestID et les OS auxquels ils correspondent.

X. Liste des GuestID

Source de la liste : VMware.

asianux3_64Guest (Asianux Server 3 64 bit),
asianux3Guest (Asianux Server 3),
asianux4_64Guest (Asianux Server 4 64 bit),
asianux4Guest (Asianux Server 4),
darwin64Guest (Darwin 64 bit),
darwinGuest (Darwin),
debian4_64Guest (Debian GNU/Linux 4 64 bit),
debian4Guest (Debian GNU/Linux 4),
debian5_64Guest (Debian GNU/Linux 5 64 bit),
debian5Guest (Debian GNU/Linux 5),
dosGuest (MS-DOS),
freebsd64Guest (FreeBSD x64),
freebsdGuest (FreeBSD),
mandrivaGuest (Mandriva Linux),
netware4Guest (Novell NetWare 4),
netware5Guest (Novell NetWare 5.1),
netware6Guest (Novell NetWare 6.x),
nld9Guest (Novell Linux Desktop 9),
oesGuest (Open Enterprise Server),
openServer5Guest (SCO OpenServer 5),
openServer6Guest (SCO OpenServer 6),
os2Guest (OS/2),
other24xLinux64Guest (Linux 2.4x Kernel (64 bit) (experimental)),
other24xLinuxGuest (Linux 2.4x Kernel),
other26xLinux64Guest (Linux 2.6x Kernel (64 bit) (experimental)),
other26xLinuxGuest (Linux 2.6x Kernel (64 bit) (experimental)),
other26xLinuxGuest (Linux 2.6x Kernel),
otherGuest (Other Operating System),
otherGuest64 (Other Operating System (64 bit) (experimental)),
otherLinux64Guest (Linux (64 bit) (experimental)),
otherLinuxGuest (Other Linux),
redhatGuest (Red Hat Linux 2.1),
rhel2Guest (Red Hat Enterprise Linux 2),
rhel3_64Guest (Red Hat Enterprise Linux 3 (64 bit)),
rhel3Guest (Red Hat Enterprise Linux 3),
rhel4_64Guest (Red Hat Enterprise Linux 4 (64 bit)),
rhel4Guest (Red Hat Enterprise Linux 4),
rhel5_64Guest (Red Hat Enterprise Linux 5 (64 bit) (experimental)),
rhel5Guest (Red Hat Enterprise Linux 5),
rhel6_64Guest (Red Hat Enterprise Linux 6 (64 bit)),
rhel6Guest (Red Hat Enterprise Linux 6),
sjdsGuest (Sun Java Desktop System),
sles10_64Guest (Suse Linux Enterprise Server 10 (64 bit) (experimental)),
sles10Guest (Suse linux Enterprise Server 10),
sles11_64Guest (Suse Linux Enterprise Server 11 (64 bit)),
sles11Guest (Suse linux Enterprise Server 11),
sles64Guest (Suse Linux Enterprise Server 9 (64 bit)),
slesGuest (SuseLinux Enterprise Server 9),
solaris10_64Guest (Solaris 10 (64 bit) (experimental)),
solaris10Guest (Solaris 10 (32 bit) (experimental)),
solaris6Guest (Solaris 6), solaris7Guest (Solaris 7),
solaris8Guest (Solaris 8), solaris9Guest (solaris 9),
suse64Guest (Suse Linux (64 bit)),
suseGuest (Suse Linux),
turboLinux64Guest (Turbolinux (64 bit)),
turboLinuxGuest (Turbolinux),
ubuntu64Guest (Ubuntu Linux (64 bit)),
ubuntuGuest (Ubuntu Linux),
unixWare7Guest (SCO UnixWare 7),
win2000AdvServGuest (Windows 2000 Advanced Server),
win2000ProGuest (Windows 2000 Professional),
win2000ServGuest (Windows 2000 Server),
win31Guest (Windows 3.1),
win95Guest (Windows 95),
win98Guest (Windows 98),
windows7_64Guest (Windows 7 (64 bit)),
windows7Guest (Windows 7),
windows7Server64Guest (Windows Server 2008 R2 (64 bit)),
winLonghorn64Guest (Windows Longhorn (64 bit) (experimental)),
winLonghornGuest (Windows Longhorn (experimental)),
winMeGuest (Windows Millenium Edition),
winNetBusinessGuest (Windows Small Business Server 2003),
winNetDatacenter64Guest (Windows Server 2003, Datacenter Edition (64 bit) (experimental)),
winNetDatacenterGuest (Windows Server 2003, Datacenter Edition),
winNetEnterprise64Guest (Windows Server 2003, Enterprise Edition (64 bit)),
winNetEnterpriseGuest (Windows Server 2003, Enterprise Edition),
winNetStandard64Guest (Windows Server 2003, Standard Edition (64 bit)),
winNetEnterpriseGuest (Windows Server 2003, Enterprise Edition),
winNetStandard64Guest (Windows Server 2003, Standard Edition (64 bit)),
winNetStandardGuest (Windows Server 2003, Standard Edition),
winNetWebGuest (Windows Server 2003, Web Edition),
winNTGuest (Windows NT 4),
winVista64Guest (Windows Vista (64 bit)),
winVistaGuest (Windows Vista),
winXPHomeGuest (Windows XP Home Edition),
winXPPro64Guest (Windows XP Professional Edition (64 bit)),
winXPProGuest (Windows XP Professional).

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5579.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.