> Tech > Quelques cas d’usages

Quelques cas d’usages

Tech - Par Renaud ROSSET - Publié le 28 mars 2011
email

Nous partons du principe où la connexion existe déjà entre la console PowerCLI et un serveur vCenter (avec la commande Connect-VIServer).

Lister les VM

PS > Get-VM

Name PowerState Num CPUs Memory (MB)
---- ---------- -------- -----------

Quelques cas d’usages

/>
W2K3R2 – 32 bits PoweredOff 1 1024
Ubuntu PoweredOn 1 512
Windows 7 Pro PoweredOn 1 512
W2K8R2DC PoweredOn 1 1024
vCenter PoweredOn 1 2048

La commande Get-VM retourne un tableau d’objets de type VirtualMachine. Get-VM ne retourne par défaut que les propriétés les plus essentielles. Pour connaître la liste des membres (propriétés et méthodes) disponibles, nous pouvons utiliser la commande Get- Member comme ceci :

PS > Get-VM | Get-Member

TypeName: VMware.VimAutomation.Client20.VirtualMachineImpl
Name MemberType Definition
—- ———- ———-
Equals Method bool Equals(System.Object
obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
CDDrives Property VMware.VimAutomation.
Types.CDD…
CustomFields Property System.Collections.Generic.
IDi…
DatastoreIdList Property System.String[] DatastoreIdLis…
Description Property System.String Description
{get…
DrsAutomationLevel Property System.Nullable`1[[VMware.
VimA…
FloppyDrives Property VMware.VimAutomation.
Types.Flo…
FolderId Property System.String FolderId
{get;}
Guest Property VMware.VimAutomation.
Types.VMG…

PowerState Property VMware.VimAutomation.
Types.Pow…
ResourcePoolId Property System.String ResourcePoolId
{…
UsbDevices Property VMware.VimAutomation.
Types.Usb…
VMHostId Property System.String VMHostId
{get;}
VMSwapfilePolicy Property System.Nullable`1[[VMware.
VimA…

Comme pour tout objet de type tableau, nous pouvons filtrer son contenu par le biais de la commande Where-Object pour n’obtenir que les résultats qui correspondent à nos critères. Comme par exemple ceux dont la propriété PowerState vaut « PoweredOff ».

Lister les VM arrêtées

PS > Get-VM | Where-Object {$_.PowerState -eq ‘PoweredOff’}
Name PowerState Num CPUs Memory (MB)
—- ———- ——– ———–
W2K3R2 – 32 bits PoweredOff 1 1024

Créer un snapshot sur une VM

Nous pouvons, par exemple, avant l’application d’un Service Pack effectuer un snapshot sur notre serveur vCenter avec la commande suivante :

PS > New-Snapshot -VM vCenter -Name ‘Snapshot avant application
SP’ -Quiesce

Lister les VM qui ont un snapshot

La commande Get-Snapshot nous retourne les noms et la taille de tous les snapshots existant dans notre infrastructure VMware. C’est bien certes, mais cela ne nous dit pas à quelles machines appartiennent ces snapshots, ni la date à laquelle ils ont été créés. Qu’à cela ne tienne, la commande suivante va régler notre « problème » :

PS > Get-Snapshot -VM * | Format-Table
VM,Name,Created,SizeMB
VM Name Created SizeMB
— —- ——- ——
Ubuntu avant mise à jour 23/05/2010 18:50:39 3513,79
vCenter Snapshot avant 24/05/2010 15:16:35 15655,03
application SP

Déterminer l’état des VMware Tools

Connaître l’état des VMware Tools est important notamment pour savoir s’ils sont installés ou non ou s’ils nécessitent une mise à jour. Cependant lorsque l’on regarde leur état avec le VI Client, ce dernier nous retourne également l’état des VMware Tools des VM éteintes et cet état a forcément la valeur « NotRunning ». Pour ne plus avoir ce souci, nous disposons de la commande suivante :

PS > Get-VM | Where {$_.PowerState -eq ‘PoweredOn’} |
Select-Object Name, {$_.Guest.State}
Name $_.Guest.State
—- ————–
Ubuntu Running
Windows 7 Pro NotRunning
W2K8R2DC Running
vCenter Running

Mettre à jour les VMware Tools

Heureusement pour nous, PowerCLI possède pour se faire la commande Update-Tools, ce qui va nous éviter la tendinite au poignet à cause de la multitude de clics droit suivis de Guest/Install-Update VMware Tools qu’il aurait fallu faire lorsque l’on a un grand nombre de VM à mettre à jour.

Cette commande possède le commutateur -NoReboot, qui, s’il est spécifié évite un redémarrage non désiré après la mise à jour. La commande suivante déclenche la mise à jour des outils sur une machine :

PS > Update-Tools -VM ‘Windows 7 Pro’

A présent, nous pourrions déclencher la mise à jour de plusieurs machines de la façon suivante :

PS > Update-Tools -VM ‘Windows 7 Pro’, VM1, VM35, vCenter,
VM52

Création de multiples VM

Un dernier exemple et nous nous arrêterons là, comment créer un ensemble de machines virtuelles en une seule opération pour construire une maquette par exemple. Premièrement essayons d’y aller étape par étape, en observant la syntaxe nécessaire à la création d’une VM unitaire :

PS > New-VM -Name vm1 -GuestId ‘winXPProGuest’ -DiskMB
5000 -MemoryMB 256 -VMHost 192.168.1.5

Cette ligne de commande crée une VM de type Windows XP Professionnel 32 bits avec 256 Mo de RAM et un disque d’une capacité de 5 Go. A présent, ajoutons une simple boucle à notre ligne de commandes et le tour sera joué :

PS > 1..10 | Foreach {
New-VM -Name vm$_ -GuestId ‘winXPProGuest’ -DiskMB 5000
-MemoryMB 256 -VMHost 192.168.1.5 }

Et voilà, nous venons de créer dix machines en une opération. N’est-ce pas fantastique ?

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 28 mars 2011