Il est parfois nécessaire d’utiliser les commandes PowerCLI afin d’effectuer des tâches de maintenance sur les hyperviseurs, les clusters, les VMs ou tout autre objet de l’infrastructure.
Dans cet article, nous allons essayer d’expliquer quelques commandes de base.
GESTION D’INVENTAIRE
Pour retrouver des objets, vous devrez utiliser les cmdlets de type « Get-x« .
Par exemple :
Get-VM : Affiche les informations des VMs
Get-VMHost : Affiche les informations des hyperviseurs
Get-Datacenter : Affiche les informations du ou des datacenter
Get-Datastore : Affiche les informations des Datastores
Get-Cluster : Affiche les informations du ou des clusters
Get-VirtualSwitch : Affiche les informations des vSwitchs
Si vous souhaitez lister toutes les commandes de type « Get-x« , vous pouvez aussi taper la commande suivante :
Get-Command -Module vmware* -Verb get
DEPLOIEMENT ET CONFIGURATION
Il y a plusieurs possibilités d’administrer des ressources avec PowerCLI.
Vous pouvez soit créer, soit ajouter, soit modifier une ressource.
Pour créer une ressource :
New-VM : Pour créer une nouvelle VM
New-VirtualSwitch : Pour créer un nouveau switch virtuel
New-Folder : Pour créer un nouveau container (dossier)
Pour ajouter une ressource :
Add-VMHost : Pour ajouter un nouveau serveur hôte
Add-PassthroughDevice : Pour ajouter un nouveau périphérique en direct (un disque physique par exemple)
AddVMHostNTPServer : Pour ajouter un nouveau serveur NTP au serveur hôte
Pour modifier une ressource :
Set-VM : Pour modifier les paramètres d’une VM
Set-CDDrive : Pour modifier les paramètres d’un lecteur CD/DVD
Set-VMHost : Pour modifier les paramètres du serveur hôte
Si vous souhaitez lister toutes les commandes de type « new-x« , « add-x » ou « set-x« , vous pouvez aussi taper la commande suivante :
gcm -mod vmware* -verb add, new, set
MAINTENANCE
La commande « Move » sert à déplacer des ressources.
Move-VM : Pour déplacer une VM (effectue un vMotion)
Move-Folder : Pour déplacer un container (dossier)
Move-VmHost : Pour déplacer un serveur hôte d’un cluster à un autre
Move-Cluster : Pour déplacer un cluster d’un datacenter à un autre
La commande « Remove » sert à supprimer des ressources.
Remove-VMHostAccount : Pour supprimer un compte sur un serveur hôte
Remove-Snapshot : Pour supprimer un snapshot
Remove-HardDisk : Pour supprimer un disque d’une VM (vmdk)
La commande « Restart » sert à redémarrer des ressources.
Restart-VM : Pour redémarrer une VM
La commande « Start » sert à démarrer des ressources.
Start-VM : Pour démarrer une VM
Start-VApp : Pour démarrer une vApp
La commande « Stop » sert à arrêter des ressources.
Stop-VM : Pour arrêter une VM
Stop-VApp : Pour arrêter une vApp
La commande « Suspend » sert à suspendre des ressources.
Suspend-VM : Pour suspendre une VM (mise en pause)
DIAGNOSTIQUE ET PERFORMANCE
Effectuer des diagnostiques :
Get-LogType : Pour récupérer un certain type de logs (filtre)
Get-Log : Pour récupérer des logs (pas de filtre)
Get-VIEvent : Pour récupérer les évènements
Get-Task : Pour récupérer des tâches réalisées
Analyse de performances
Get-Stat : Pour récupérer les informations relatives aux performances
Vous pouvez donc utiliser énormément de cmdlets grâce à PowerCLI, comme par exemple pour administrer des services, en mixant les fonctions comme :
Get-VMHostService : sert à récupérer la liste des services d’un hyperviseur
Start-VMHostService : sert à démarrer des services d’un hyperviseur
Set-VMHostService : sert à modifier des services d’un hyperviseur
etc… Cependant, il faut bien veiller à être connecté à un serveur ESXi et non au vCenter.
Prenons l’exemple du service SSH. Il y a trois modes disponibles sur un ESXi. ces trois modes sont :
Automatic : Démarrer automatiquement si ports ouverts et arrêter quand tous ports fermés
On : Démarrer et arrêter avec l’hôte
Off : Démarrer et arrêter manuellement
Nous tapons la commande : Get-VMHostService esxi1*
On s’aperçoit que le service SSH de l’esxi1 est « Off« . il est donc sur l’option « Démarrer et arrêter manuellement »
Dans la partie « Key« , on récupère le nom du service. Ici, il s’agit du service « TSM-SSH« .
Nous allons donc isolé ce service en tapant la commande suivante :
Get-VMHostService esxi1* | where ( $_.key -eq « TSM-SSH » )
Une fois le service récupéré, on peut entrer la valeur souhaité (On, Off ou Automatic)
Pour cela, on rappel la commande puis on ajoute : set-VMHostService -Policy On, pour activer l’option « Démarrer et arrêter avec l’hôte »
La commande sera donc :
Get-VMHostService esxi1* | where ( $_.key -eq « TSM-SSH » ) | set-VMHostService -Policy On
Si on décortique un peu cette commande en trois blocs :
Get-VMHostService esxi1* = On récupère les services sur le serveur hôte esxi 1
where ( $_.key -eq « TSM-SSH » ) = On donne le nom du service qui nous intéresse
Set-VMHostService -Policy On = On donne le paramètre à modifier
La commande « where » sert à identifier un objet.
Le nom de la variable listé dans « key » est en fait un alias faisant référence à un service, dont le nom figure dans la partie « Label ».
Le paramètre « -eq » veut dire « égale à ».
En traduction littéraire, ça ressemblerait un peut à ça :
Dans la liste des services de l’ESXi 1, trouve le service dont la clef correspond à « TSM-SSH » et modifie le service en passant la règle à « Démarrer »
Cependant, nous avons juste sélectionné l’option, mais nous n’avons pas démarré le service. Pour cela, rappelez la commande, puis ajoutez « start-VMHostService »
La commande sera donc :
Get-VMHostService esxi1* | where ( $_.key -eq « TSM-SSH » ) | start-VMHostService
Vous pouvez aussi utiliser cette commande en changeant simplement le dernier paramètre avec « stop-VMHostService« , ou « restart-VMHostService » par exemple.