Mise à jour des CustomFields

customvalue_04

Les CustomFields sont des champs personnalisés au niveau de vCenter qui permettent de définir des entrées supplémentaires par type d’objet (Global | Virtual Machine | Host).

Le menu pour accéder aux Customfields se trouve dans la console du vCenter en faisant Administration > Custom Fields

Vous pourrez ainsi définir des champs supplémentaires :

Ces champs sont ensuite accessible au niveau de l’objet sélectionné, par exemple ici une machine virtuelle :

Dans notre cas, nous avons un champ personnalisé « IP » qui est remplie automatiquement lors du déploiement de la machine virtuelle avec l’adresse IP de la machine virtuelle (logique ^^).

Nous avons eu besoin à un certains moment de changer certaines adresses IP au niveau des machines virtuelles, donc le CustomField n’était plus à jour. Comme d’habitude, pour faire des opérations de masse, la méthode dite du « cliquou-cliquou » (très appréciée de notre ami Reichstag ^^) ou le PowerCLI.

Voici donc un petit script (ou plutôt OneLiner) PowerCLI qui montre une mise à jour massive de CustomField :

ForEach ($vm in (Get-View -ViewType VirtualMachine)) { $vm | Select @{N="name";E={ $_.Name }}, @{N="ipField";E={($vm.customvalue | Where { $_.Key -eq (($vm.AvailableField | Where { $_.Name -eq "IP" }).Key)}).Value }},@{N="ipGuest";E={ $_.guest.ipAddress }} | ?{ ($_.ipField -ne $_.ipGuest) -And ($_.ipGuest -ne "0.0.0.0") -And ($_.ipGuest -ne $null) -And ($_.ipGuest -notmatch "^169.254.") } | %{$vm.setCustomValue("IP",$_.ipGuest)}}

Et au final, un petit script qui fait le boulot qu’on lui demande :

Laisser un commentaire

Required fields are marked *.

*