Réplication des custom fields

La plateforme VMware du client chez lequel on travaille aujourd’hui avec hypervisor.fr a plusieurs particularités dont celle d’avoir énormément de custom fields.

Outre le fait de vouloir une certaine cohérence dans tous ces custom fields, on aime bien avoir une plateforme de production « propre » et donc on préferera par exemple avoir un custom field « N/A » plutôt qu’un champs vide (pour éviter des remontées d’alertes), de même qu’éviter les oublis lors de déploiement d’appliance en OVF (qui forcement ne remplisse pas les champs automatiquement).

On a donc développé un script qui permet de répliquer si besoin les custom fields et annotation d’une VM vers une autre afin de pouvoir gagner du temps et se simplifier la vie, et surtout d’éviter un risque d’erreur lors de saisie manuelle. On peut aussi utiliser ce script pour remplir automatiquement les champs d’une VM avec « N/A » (via l’omission du paramètre vmSourceName).

Le script prend plusieurs arguments :

  • vmSourceName (optionnel) : Nom de la VM source utilisée pour la replication
  • vmDestinationName : Nom de la VM destination utilisée pour la replication
  • force (optionnel) : Permet d’écraser les champs existants sur la VM de destination

Il y a tout d’abord une vérification des valeurs passées pour le nom des VM afin de s’assurer que les machines sources et destination existent bien :

Ensuite, la réplication des custom fields et annotation s’effectuent. Si la VM de destination possède déjà des custom fields renseignés, ils ne seront pas écrasés sauf si le switch -force est utilisé :

Voici quelques exemples d’utilisation du script :

C:\foo>.\Set-Tags.ps1 -vmSourceName VM01 -vmDestinationName VM02

Cela va répliquer les custom fields et annotation de la machine virtuelle VM01 vers VM02 (sans écraser les champs renseignés à la destination).

C:\foo>.\Set-Tags.ps1 -vmSourceName VM01 -vmDestinationName VM02 -force

Cela va répliquer les custom fields et annotation de la machine virtuelle VM01 vers VM02 en écrasant les champs renseignés à la destination.

C:\foo> .\Set-Tags.ps1 -vmDestinationName VM02

Cela va remplir les champs de la VM02 avec « N/A » (sans écraser les champs déjà renseignés)

C:\foo> .\Set-Tags.ps1 -vmDestinationName VM02 -force

Cela va remplir les champs de la VM02 avec « N/A » en écrasant les champs déjà renseignés.

Et comme toujours, un petit Get-Help dessus permettra d’avoir l’aide en ligne du cmdlet :

Le script Set-Tags.ps1 est disponible au téléchargement sur notre page GitHub: https://github.com/v-team/powercli-toolbox

2 comments

Laisser un commentaire

Required fields are marked *.