vExpert 2013

C’est ce matin tôt que nous avons eu le plaisir de voir que l’on faisait partie des vExpert 2013 !

On tenait à vous remercier encore une fois de nous suivre et un grand merci à John Troyer pour ce programme et ce que ça représente !

Et voilà venu l’ère de vOpenData !

Voici un petit billet qui va parler du projet vOpenData sur lequel on a eu la chance d’offrir notre aide avec hypervisor.fr

Je ne vais pas reprendre complètement l’histoire du projet (vous pourrez trouver cela dans les posts à ne pas manquer de William Lam vOpenData: An Open Virtualization Community Database ou de Ben Thomas vOpenData – Crunching Everyone’s Data For Fun And Knowledge), mais pour faire simple, vOpenData est une base de statistiques  basée sur la communauté (permettant de répondre à des questions du genre « Quelle est la taille moyenne des VMDK ? » ou « Combien il y a t-il de VM en moyenne par infrastructure ? »)

Le projet se compose d’un script (Perl ou PowerCLI au choix) disponible sur GitHub (https://github.com/vopendata/scripts) qui permet d’exporter des statistiques de votre plateforme (de manière complètement anonyme, il n’y a aucun nom, seuls les UUID sont reportés), puis du site web www.vopendata.org qui vous permettra d’importer les données recueillies par le script.

Au final, le résultat est bluffant, en quelques minutes vous avez mis à disposition vos statistiques qui s’affichent sur un dashboard général (reprenant les différentes infos de toute la communauté) disponible sur http://dash.vopendata.org/public :

Vous l’aurez compris, ce projet se base sur les efforts de toute la communauté, on compte sur vous pour y participer, rendez vous sur www.vopendata.org !

Liste des ESXi avec IP

Voici un petit mémento qu’on avait oublié de poster pour récupérer rapidement le nom et l’IP des serveurs ESXi d’une plateforme vSphere. Plusieurs possibilités pour faire cela, soit on utilise uniquement des propriétés vSphere SDK :

Get-View -ViewType HostSystem -Property Name,Config | Select Name, @{n="IP";e={$_.config.network.vnic.spec.ip.ipaddress}}

Soit, on va utiliser la résolution DNS du nom de l’ESXi :

Get-View -ViewType HostSystem -Property Name | Select Name, @{n="IP";e={[System.Net.Dns]::GetHostAddresses($_.Name)}}

Même si le résultat est identique, la différence se trouve au niveau du temps d’exécution. Sur une plateforme avec ~200 serveurs ESXi, la méthode vSphere SDK prend un peu plus de 26s (même en utilisant le filtre Property du cmdlet Get-View) alors que celle utilisant la méthode DNS prend 0,3s :

Powershell v3 et PowerCLI

C’est hier soir que l’on a vu la bonne nouvelle de la semaine, à savoir une nouvelle version (5.1 Release 2) de PowerCLI :

Alan Renouf a par la suite publié un billet sur cette sortie en détaillant les nouveautés sur les cmdlets pour la gestion des Distributed SwitchesPowerCLI 5.1 R2 Released

En regardant le release note (toujours une très bonne source d’information! disponible ici), ce qui nous a tout de suite marqué, c’est enfin le support de Powershell v3 pour PowerCLI !!!

Cela ouvre pas mal de perspective, notamment sur l’amélioration des performances du Get-ChildItem. On va refaire des tests pour son intégration dans la récupération de fichier depuis un PSDrive, on vous en reparlera surement une fois cela terminé :p

On a aussi vu une nouvelle manière de se connecter à un serveur (cette méthode de connexion reprend le même principe de base que celle des plugins pour le VIClient) :

vSphere PowerCLI introduces an improvement in PowerCLI views.
With the VimClient.Connect() method, you can now connect to a server by server session ID.

En résumé, que du bon dans cette release, on ne peut que vous encourager de mettre à jour (si ce n’est pas déjà fait) en vous rendant sur le site VMware : http://blogs.vmware.com/vipowershell/2013/02/powercli-5-1-release-2-now-available.html

Charge des VM/Hôtes/Cluster en PowerCLI

Update 2014.10.31: Suite a un commentaire demandant l’ajout de la charge des datastores, nous l’avons ajouté dans le script 🙂

Pour donner suite à notre précédent post sur la charge des cluster en PowerCLI, une petite discussion avec Alan Renouf nous a convaincu de faire un équivalent pour d’autres objets vCenter, l’idée étant d’avoir une fonction Get-Load universelle qui afficherait la charge de l’objet passé en pipeline ou spécifié explicitement, Piece Of Cake !

En y réfléchissant, on voulait que le comportement du cmdlet soit un peu identique à celui de Get-View, par exemple la possibilité de l’utiliser tel que :

Get-View -ViewType VirtualMachines
Get-VM | Get-View
Get-View -ViewType HostSystem
Get-VMHost | Get-View

Partant de là, on a regardé la définition du cmdlet Get-View en s’aidant des commandes proxy, par exemple via la commande suivante :

[System.Management.Automation.ProxyCommand]::create((New-Object System.Management.Automation.CommandMetaData(Get-Command Get-View)))

On a donc fait une fonction PowerCLI qui va afficher graphiquement dans la console la charge de différents type d’objets (machine virtuelle, hôte ESXi, cluster vSphere ou datastore). Cette fonction peut être utilisée de plusieurs manières, soit en mode standalone :

Get-Load -LoadType VirtualMachine
Get-Load -LoadType HostSystem
Get-Load -LoadType ClustercomputeResource
Get-Load -LoadType Datastore

Une autre manière de l’utiliser est de lui passer des objets via un pipeline:

Get-VM "vm*" | Get-Load
Get-VMHost | Get-Load
Get-Datastore -Location "storagepod01" | Get-Load
Get-Cluster -Location "folder01" | Get-Load

Pour l’instant, il n’y a que ces 4 types d’objets qui sont supportés, si vous essayez d’en utiliser d’autres on saura vous le rappeler :p

La fonction affichera donc en console la charge des objets demandés :

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