Le dude est sur Github

Cela fait plusieurs fois que Timo nous faisait la remarque, et à chaque fois ça nous rappelais que nous ne l’avions toujours pas fait :p Voilà chose faite, GitHub nous voici.

Nous allons mettre l’intégralité des scripts et sources que l’on aura fait sur GitHub afin de permettre à tout le monde de pouvoir les récupérer plus facilement et surtout pouvoir contribuer (aka forker).

Pour l’instant, il n’y a que les sources des scripts les plus récents et du plugin sshAutoConnect mais nous comptons bien compléter au fur et à mesure en mettant les anciennes et les futures sources :p

Le compte est commun avec hypervisor.fr (vu qu’on bosse souvent sur les mêmes scripts), vous trouverez donc les sources communes de nos scripts.

Vous pouvez accéder à nos repository ici : https://github.com/v-team

Comment mettre WinSxS au régime ?

Update 2014.08.28 : Ajout de la KB Microsoft afin de pouvoir cleaner des maj WSUS en 2008r2 sp1 en GUI, un grand merci a ctxblog.fr

Depuis l’arrivée de la version 6.0 du noyau Windows (c’est à dire l’arrivée de Windows Vista et Server 2008, historique disponible ici), une des questions les plus posées doit être « Pourquoi le dossier C:\Windows\WinSxs est si volumineux ? ». Ce billet est plus un pense-bête vu le nombre de fois où nous nous reposons la question (et ça fera un peu de vide dans Evernote).

Avant de lister toutes les commandes possibles (qui s’améliorent avec le temps) suivant les versions de Windows, nous nous disons qu’une petite explication plus en détail du fonctionnement de ce fameux dossier ne serait pas de trop.

Pour faire simple, la technologie Side-by-side (aka ‘SxS’) est un standard pour les fichiers exécutables depuis Windows ME afin d’atténuer les problèmes qui découlent de l’utilisation de bibliothèques de liens dynamiques (conflits de version, DLL en double…). Side-by-side est conceptuellement l’équivalent natif au Global Assembly Cache de .NET. Cela permet à Windows de stocker plusieurs versions d’une DLL dans le répertoire WinSxS, qui les charge sur demande (en s’appuyant sur un hardlink entre les dossiers systèmes et le dossier WinSxS):

Maintenant, voici les outils à votre disposition pour vous aider à mieux gérer WinSxS. La première commande qui est disponible est:

dism /online /cleanup-image /SPSuperseded

Cette commande n’est utile que si un Service Pack a été installé. Cela va supprimer les sauvegardes effectuées lors du passage du SP.

Windows 8 et Windows Server 2012 introduisent une nouvelle fonctionnalité appelée « Feature On Demand« . Cela permet tout simplement de supprimer les sources des rôles et des fonctionnalités de l’OS. Par défaut, Windows conserve dans %windir%\WinSxS toutes les sources des rôles et fonctionnalités, qu’ils soient installés ou non afin de permettre une installation sans avoir besoin des sources (comme C:\Windows\i386 à l’époque). Si vous n’avez donc jamais besoin de ces sources (ou si vous voulez dimensionner au mieux vos OS), vous pouvez maintenant les supprimer et gagner quelques GB (via PowerShell ou dism.exe):

Get-WindowsFeature | ?{$_.Installed -eq 0 -and $_.InstallState -eq 'Available'} | Uninstall-WindowsFeature -Remove
dism /online /disable-feature /featurename:TFTP /remove

Il y a aussi une 2ème commande disponible permettant de purger tout composant obsolète (superseded):

dism /online /cleanup-image /StartComponentCleanup

Depuis Windows 8.1 et Server 2012 R2 une dernière commande est disponible permettant d’améliorer la purge:

dism /online /cleanup-image /StartComponentCleanup /ResetBase

Toutes ces commandes peuvent prendre un peu de temps mais au final, cela permet de réduire au maximum la taille du dossier WinSxS (qui veut des templates tout propres ?).

Une autre possiblité en GUI est aussi de passer par l’outil de nettoyage du disque depuis la version SP1 de Windows 2008 R2 comme indiqué sur le billet suivant en installant la KB2852386, mais c’est moins classe :p

vExpert 11111011110

Après une légère frayeur due à un oubli de notre part (nous vous passons les détails honteux…), vmdude.fr fait partie de la cuvée 2014 des nominés vExpert (pour la 3ème année consécutive).

Bravo à tous les nominés, un grand merci à John Troyer et Corey Romero pour leur travail sur le programme vExpert et surtout merci à vous tous!

Pour ceux qui voudrait la liste des vExpert français (22 cette année), vous pouvez la trouver sur le billet de Jeremy Brison.

Comparer les advanced settings en PowerCLI

On a eu un besoin de comparer les advanced settings de 2 serveurs ESXi qui se trouvaient dans des cluster et vCenter différents. Pour ne pas le faire à la main et vu qu’on avait pas encore fait de script là dessus, voici chose faite ! PowerCLI to the Rescue !

Voici donc un script qui permet de lister les différences d’advanced settings entre 2 serveurs ESXi quelque soit leur cluster ou vCenter, le seul pré-requis étant d’être connecté au(x) vCenter(s) qui héberge(nt) les serveurs :

Cela peut être très utile en complémentaire de la fonctionnalité disponible depuis esxcli en 5.1 qui permet d’afficher les paramètres qui ne sont pas à leur valeur initiale (cf billet de William Lam Identifying Non-Default Advanced & Kernel Settings Using ESXCLI 5.1).

Le script prend plusieurs arguments :

  • hostSourceName : Nom du serveur ESXi source utilisé pour la comparaison
  • hostDestinationName : Nom du serveur ESXi destination utilisé pour la comparaison
  • short (optionnel) : Switch permettant de n’afficher que les différences d’advanced settings qui n’appartiennent pas à la liste d’exclusion (variable $excludedSettings dans le script)

Le résultat est une liste de différences dans un objet System.Array[], libre à vous de le trier, filtrer, exporter en CSV ou afficher dans un GridView :

Voici quelques exemples d’utilisation du script :

C:\foo>.\Compare-AdvancedSettings.ps1 -hostSourceName esx01.vmdude.fr -hostDestinationName esx02.vmdude.fr

Affiche toutes les différences d’advanced settings entre le serveur esx01.vmdude.fr et le serveur esx02.vmdude.fr

C:\foo>.\Compare-AdvancedSettings.ps1 -hostSourceName esx01.vmdude.fr -hostDestinationName esx02.vmdude.fr -short

Affiche les différences d’advanced settings (sauf celles listées dans la variable $excludedSettings) entre le serveur esx01.vmdude.fr et le serveur esx02.vmdude.fr

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

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

Inventaire ASCII Art des ressources vCenter

Pour une présentation sur notre infrastructure, on a eu besoin de sortir un inventaire des types de configuration des machines virtuelles au sens CPU, mémoire et disque. En gros, le besoin a été de fournir une liste comprenant le nombre de VM avec ## CPU/MEM/HDD.

Plutôt que de fournir un banal fichier csv avec les informations, on s’est dit que ça pourrait faire bien de réutiliser la fonction de graphe en ASCII Art réalisée pour le script de Charge des VM/Hôtes/Cluster en PowerCLI.

Le script va donc permettre de sortir de manière « graphique » l’inventaire des configurations des machines virtuelles :

Le script va vous permettre de sortir plusieurs « cartes » de votre inventaire. Vous pourrez ainsi avoir la « carte » des configurations CPU :

C:\foo>.\Get-ResourceMap.ps1 -CPU

Avec le paramètre -MEM, vous aurez la carte des ressource mémoire :

C:\foo>.\Get-ResourceMap.ps1 -MEM

Et avec le paramètre -Disk, vous aurez la carte des ressource disque (la somme des tailles de tous les disques des VM est réalisée, le résultat peut être assez verbeux ^^) :

C:\foo>.\Get-ResourceMap.ps1 -Disk

Il existe aussi la possibilité de lancer tout d’un coup en ne spécifiant aucun paramètre, par exemple, la commande suivante affichera les cartes des ressources CPU, MEM et disques :

C:\foo>.\Get-ResourceMap.ps1

Il est aussi possible d’utiliser le paramètre -ExportData pour exporter les données dans un fichier CSV:

C:\foo>.\Get-ResourceMap.ps1 -CPU -ExportData

PS: les paramètres sont utilisables unitairement et l’ordre n’importe pas (c’est à dire qu’il est possible de lancer les commandes suivantes) :

C:\foo>.\Get-ResourceMap.ps1 -CPU -ExportData
C:\foo>.\Get-ResourceMap.ps1 -CPU -MEM -ExportData
C:\foo>.\Get-ResourceMap.ps1 -MEM -CPU -ExportData

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

Page 3 sur 29123451020Dernière page »