TIP : Déplacer un groupe de VMs via PowerCLI

Histoire de convaincre ceux (sans doute rares désormais) qui n’ont pas encore franchi le pas de “PowerCLI”, l’interface de pilotage de vSphere via PowerShell, je vous propose en cette après-midi ensoleillé de découvrir un petit script simple et pragmatique pour déplacer “par paquet” une liste de VMs. Rien de révolutionnaire ici, mais plutôt un moyen beaucoup plus efficace de faire ce genre d’opérations courantes (notamment pendant des phases de migration d’environnement) que via l’interface graphique.

On y va ?..

Le pré-requis est relativement simple : connaître un peu PowerShell (le minimum suffira) et avoir installé la surcouche “PowerCLI” de vSphere (A télécharger ici pour vSphere 6.5).

Une fois installé, connectez-vous à votre vCenter en utilisant la commande “connect-viserver -server ” et en rentrant vos credentials. Vous êtes prêt à passer des ordres directs à vCenter. Pour le vérifier, vous pouvez, par exemple demander la liste de vos clusters :

On peut maintenant utiliser PowerShell et les centaines de CommandLets PowerCLI pour réaliser une migration de VM d’un cluster à un autre (un Storage VMotion, la plupart du temps). Evidemment, les contraintes sont identiques à celles que vous connaissez déjà lorsque vous réalisez cette opération depuis l’interface web : des processeurs cibles compatibles, des portgroups permettant d’assurer une continuité réseau une fois la bascule achevée etc. …

Voila le type de script à taper directement dans le fichier “monbeauscript.ps1” de rigueur :

… puis à lancer dans une fenêtre PowerCLI, ensuite, laissez la magie opérer :

Une fois lancé, le script va prendre chaque machine l’une après l’autre et procéder à son déménagement vers le serveur “monesx.vblog.io”, le datastore “VxRail-Virtual-SAN-Datastore-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx” et changer le portgroup de la carte réseau vers “MonBoCluster-VLAN42_Srv”.

Les experts/puristes auront certainement plein de commentaires (bienvenus) à faire, mais cela permet de lancer la discussion aussi ! Les limitations sont par ailleurs nombreuses : pas de prise en charge de VM disposant de plusieurs interfaces réseau, notamment.

Vous l’aurez compris, j’ai profité de ce petit exercice personnel pour me remettre à PowerShell que je n’avais pas pratiqué depuis longtemps. Le fait est que PowerCLI est un outil extrêmement puissant et finalement très accessible. Nul doute que ces pratique vont tendre à se généraliser chez nous en tout cas.

Vous pouvez trouver toute la doc et la base de référence des CommandLets chez VMware ici.

En espérant que cela aide aussi, à vos claviers :)

2 thoughts on “TIP : Déplacer un groupe de VMs via PowerCLI

    • Cédric Cédric says:

      Précision de mon coté, j’ai juste dit que mon mini script ne prenait pas en compte cet aspect des choses, mais effectivement, c’est tout à fait possible avec les APIs. Je rajoute qu’il est également possible de lancer les migrations en arrière plan en ajoutant l’option “-RunAsync” à la commande Move-VM.

      Merci Erwan pour ce magnifique commentaire !

Laisser un commentaire

Votre adresse de messagerie 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.