Commande ESXi – PowerCLI

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*

Capture d'écran 2015-12-23 à 19.27.53

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 » )

Capture d'écran 2015-12-23 à 19.36.56

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

Capture d'écran 2015-12-23 à 19.40.41

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.

 

Source