Dernière version de mon script powercli d’inventaire de VMs avec plusieurs optimisations récupérées sur le forum VMware principalement :

$vCenter = Read-Host "Entrer ici le nom ou l'ip du vCenter"
Connect-VIServer $vCenter

#Creation du dossier pour l'export
md "C:\Scripts" -ErrorAction SilentlyContinue

#Inventaire VMs 
Get-View -ViewType VirtualMachine -Property  Name, Guest, Parent, Summary, Config, Runtime |

select Name,

    @{N='VMHostname';E={$_.Guest.Hostname}},
	#set variable parent puis remmonte d'un cran avec $parent.parent tant que le moref n'est pas datacenter
	@{N='Datacenter';E={
	$parent = Get-View -Id $_.Parent -Property Name,Parent
		Do {$parent = Get-View -Id $parent.Parent -Property Name,Parent }
		while ($parent.MoRef.Type -ne "DataCenter" -and $parent), $parent.name}},
	@{N='PowerState';E={$_.Summary.Runtime.PowerState}},
	@{N='OS';E={$_.Config.GuestFullName}},
	#Ancienne affichage IP
	#@{N='IP';E={$_.Guest.IPAddress}}
	#avantage de Net.IPAddress donne toutes les IPs | where -filtertype {$_ est inférieur à 'a')
	#affichage IPV4 seulement (en mode call de methode where)
	@{N='IP';E={$_.Guest.Net.IPAddress.where{$_ -notlike "*fe80*"}}},
	@{N='MacAddress';E={$_.Guest.Net.MacAddress}},
	@{N='NetworkName';E={$_.Guest.Net.Network}},
	@{N='VMToolsStatus';E={$_.Guest.ToolsStatus}},
	# use UpdateViewData() to populate the linked view, then access said linked view
	@{N='Cluster';E={$_.UpdateViewData("Runtime.host.parent.name"), $_.Runtime.LinkedView.Host.LinkedView.Parent.Name}},
	@{N='vCPU';E={$_.Summary.Config.NumCpu}},
	@{N='vRAM';E={$_.Summary.Config.MemorySizeMB}},
	#le premier split prend la premiere expression, le deuxieme retire les crochets, le [1] selectionne la premiere valeur car c'est un tableau
	@{N='Datastore';E={$_.Summary.Config.VmPathName.Split()[0].split("[]")[1]}},
	#formule mathematique [math]::round(valeur entre parentheses) puis division ou autre c'est bien de mettre 1GB il fait directement 1024 puis le chiffre après la virgule correspond au nombre de decimal
	@{N='DiskGB';E={[Math]::Round((($_.Guest.Disk | Measure-Object -Property Capacity -Sum).Sum / 1GB),0)}},
	@{N='DiskFree';E={[Math]::Round((($_.Guest.Disk | Measure-Object -Property FreeSpace -Sum).Sum / 1GB),0)}} |
	
		Export-csv -NoTypeInformation -encoding "unicode" -append "C:\Scripts\export-VMs.csv"

Voici le résultat dans Excel:

Depuis la migration de l’infrastructure VMware en 6.5, nous avions un comportement différent de la 5.5 avec un prompt des credentials utilisateurs en powercli, malgré l’utilisation d’un compte disposant des droits et n’ayant aucun souci pour se connecter au WebClient.

Le premier message d’erreur est un classique : “Could not determine user name and/or password for server”. Puis, avec un argument verbose on obtient : “Connect using SSPI was unsuccessful”.

Plusieurs cas similaires sont référencés sur le forum VMware mais aucune des solutions proposées ne réglaient notre cas. La meilleure solution consistait en un workaround décrit par LucD. Need assistance with creating and then using stored credentials.

Par contre, le post d’aaronwsmith sur le sujet logon sessions in powercli for vsphere appliance 6.5 m’a bien aiguillé.

Dans une configuration avec PSC Externe, même l’appliance VCSA doit être jointe au domaine et comme il l’indique, l’option n’est pas forcement disponible depuis le WebClient.

Pour ma part, les comptes ordinateurs étaient bien présent dans notre AD, mais en exécutant la commande “/opt/likewise/bin/domainjoin-cli query”  le retour ne faisait pas apparaitre le chemin complet avec l’OU qui était censée héberger le compte machine.

Impossible de joindre la machine au domaine. Le compte ordinateur est encore présent dans l’AD et, j’obtiens une erreur LW_ERROR_LDAP_INSUFFICIENT_ACCESS (code 0x00009d8b]

Impossible également de supprimer le compte ordinateur avec la commande “/opt/likewise/bin/domainjoin-cli leave“, malgré le succès de l’opération.

Il faut donc supprimer directement le compte ordinateur depuis l’AD, attendre quelques instants que la réplication se propage, puis exécuter la ligne de commande pour l’ajouter.

/opt/likewise/bin/domainjoin-cli join domain.com Domain_Administrator Password

Voici la syntaxe que j’utilise pour ajouter directement dans la bonne OU :

/opt/likewise/bin/domainjoin-cli join –ou “CHEMIN/OU”domain.com” “CompteAutorisé@domain.com” “Password‘”

Si tout se passe bien, vous devriez avoir un succès, et le compte ordinateur devrait être visible dans l’OU de destination.

Sur nos infrastructures, il faut bien attendre 30 secondes pour que la commande fonctionne.

Ci-dessous le “avant/ après”. L’authentification est de nouveau transparente.

Surement le dernier post avant la fin de l’année 2017, un dernier petit one-liner powercli.

Nous avions besoin de refaire une passe sur les noms de machines virtuelles pour l’outil de sauvegarde et voici comment renommer toutes celles avec des minuscules en majuscules :

get-vm | where {$_.Name -cmatch "[a-z]"} | %{Set-vm -VM $_.name -Name $_.name.ToUpper() -Confirm:$false}

Pour une raison inconnue, l’une de nos appliances vSphere Replication était bloquée sur la vérification de nouvelles mises à jour. Malgré un reboot et quelques tentatives de redémarrage de service, rien n’y faisait.

Après une rapide recherche sur Internet et un passage par le forum de la communauté VMware, je suis tombé sur un post de Tim Scheppeit concernant la même problématique sur VCSA. Le support lui a donné la solution suivante et il a eu la gentillesse de la partager.

1. On se connecte en SSH sur l’appliance. Dans mon cas, je me suis connecté en console :

2. /opt/vmware/bin/vamicli update –check (Attention avec la mise en page wordpress c’est bien deux – à la suite)

3. /opt/vmware/bin/vamicli update –install latest –accepteula

J’ai juste eu à réaliser cette opération deux fois. La première a simplement débloqué la situation, mais l’update a échoué. Alors que pour la seconde, tout a fonctionné. Après un redémarrage de l’appliance, la nouvelle version était installée.

Cette procédure semble s’appliquer sur beaucoup de produits. Le titre de l’article aurait pu être “mise à jour bloquée sur une appliance VMware”.

Ça y est, j’ai enfin eu le temps de tester Runcast Analyser. Une découverte pour moi au dernier VMworld parmi les nombreux stands que j’ai visités là-bas.

Ce produit dédié à l’écosystème VMware, nous permet d’analyser l’infrastructure. Il remonte tous les points correspondant à des articles disponibles dans la base de connaissance VMware, un peu à la façon d’un HealthAnalyser.

Armé du guide d’utilisateur, je vais vous faire partager mon expérience de ce produit.

L’appliance est proposée en 3 dimensionnements :

  • 2 vCPU et 4GB de RAM pour 1vCenter et 10 hôtes ;
  • 4 vCPU et 8GB de RAMpour 5 vCenters et 100 hôtes ;
  • 8 vCPU et 32GB de RAM jusqu’à 15 vCenters et 250 hôtes.

Dès le déploiement de l’OVA, la machine dispose d’énormément de paramètres supplémentaires qui sont autant de recommandations VMware.

La VM est très simple à déployer, et dans le standard des appliances VMware. Elle propose l’administration au travers du port 5480. Compte utilisateur : rcadmin et mot de passe : admin pour cette interface.

J’en profite pour paramétrer le bon timezone et vérifier une potentielle mise à jour. La 1.6.3.0 est disponible depuis le 1er novembre, autant tester la dernière version. Cette dernière apporte principalement le rôle read-only et un meilleur support du web plug-in dans les différentes versions de vCenter.

Après le déploiement, on se connecte sur l’interface avec le compte utilisateur : rcuser et le mot de passe : Runecast!

Le port tcp 31415 indiqué dans la doc n’a plus l’air nécessaire et la redirection du 443 fonctionne directement : https://ip_appliance

La première étape, après le déploiement, consiste à ajouter un vCenter à analyser :

Après la configuration du vCenter, le guide de l’utilisateur conseille de configurer la collecte des logs, afin d’avoir le plus de données possibles pour l’analyse. Direction les paramètres en cliquant sur “Settings” puis l’onglet “Log Analysis”.

Runcast peut réaliser la configuration des hôtes et des VMs, directement pour nous, il suffit de cliquer sur la clé à molette.

Pareil pour les VMs.

Il est également possible de le faire manuellement en cliquant sur la bouée. Runecast vous indiquera les paramètres à modifier pour effectuer la configuration, et il peut aussi vous générer un script powershell.

Il faut maintenant lancer une analyse de l’infrastructure en cliquant sur “Analyse Now”.

Sur mon lab, l’analyse ne dure que quelques secondes.

Puis, le Dashboard fait un résumé de ce que l’analyse a détecté.

Il me remonte donc 5 problèmes critiques, 20 majeurs et 14 moyens. Ci-dessous, la liste des problèmes critiques, par exemple :

On peut développer chaque problème pour avoir le détail de la KB associée.

Au-delà des KB, concernant les problèmes courants de stabilité, le produit propose de vérifier la conformité avec les “best pratices” et aussi le “hardening guide”.

Chacune des listes est exportable vers le presse-papier, CSV ou PDF, en cliquant sur le bouton “Export”.

Export CSV:

Export PDF :

Comme certaines remontées font probablement parties de vos choix, vous pouvez cliquer sur “Ignore” afin de filtrer ce type d’alerte sur une partie de l’infrastructure surveillée :

Tout est maintenant en place pour faire le tour des alertes en fonction de leur priorité et de décider, ou non, de les traiter.

Pour terminer voici l’intégration du plug-in au WebClient VMware. Effectuez l’installation depuis la page Runecast : Settings > vCenter Connection puis :

Cliquez sur sur “Edit” et enfin “Install Plugin”.

Ensuite, depuis le webclient l’icône RuneCast apparait. Il faut parfois être patient, ça a été assez long sur mon lab.

Puis, on le configure dans “go to settings”.

On renseigne l’adresse IP ou le nom complet de l’appliance Runecast pour le token de l’API, il faut le générer depuis l’interface Runecast.

“Settings” puis “API Access tokens” puis “Generate API access token”.

On entre une description et on génère la clé.

Il reste à copier la clé dans la configuration du webclient puis, de dérouler le vCenter.

En conclusion, Runecast Analyser m’a vraiment séduit, le gain de temps pour ce niveau d’analyse est très important dès que l’environnement VMware devient un peu conséquent. Je ne peux que vous encourager à tester leur produit qui peut être téléchargé ici.

Pour information, je parle rarement des outils qui gravitent autour de nos environnements virtualisés, car il y en a vraiment beaucoup qui ne me semblent pas indispensables. Cependant, celui-ci m’a beaucoup plu et je tiens à préciser que cet article n’est pas sponsorisé.