Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

PowerShell – Générer un rapport au format HTML (1/2)

Contexte

Cet article a pour objectif de fournir les principales commandes PowerShell afin de créer un rapport, qui, exécuté avec une tâche planifiée, permet de générer automatiquement un rapport HTML envoyé par mail.

Dans cette série de deux articles, nous verrons comment créer deux scripts PowerShell qui permettent de remonter les principales informations pour :

  • Une liste d’un ou plusieurs serveurs HYPER-V,
  • Les machines virtuelles présentes sur un ou plusieurs serveurs HYPER-V.

Compatibilité :

Les scripts présentés dans cette série ont étés testés sur :

  • HYPER-V pour Windows Server 2012R2
  • HYPER-V pour Windows Server 2012

Dans ce premier article nous verrons les principales commandes à maitriser pour générer un rapport HTML à l’aide de PowerShell, ce prérequis est commun aux scripts de rapport des VMs ainsi qu’au script de rapport des Hyperviseurs.

Générer un rapport HTML en utilisant PowerShell

Afin de mieux nommer le fichier HTML l’idéal est de récupérer dans des variables la date et l’heure afin nommer le fichier de manière unique lors de chaque exécution :

image

Pour ajouter le code HTML depuis PowerShell, j’utilise la même variable tout au long du code dans laquelle le code HTML est ajouté à l’aide de l’operator “+=”. Une fois le script terminé, la variable contenant le code HTML est écrite vers le fichier HTML créé.

La ligne suivante permet de créer le fichier HTML vide sur lequel le code HTML vas être écrit :

image

Une fois le fichier HTML créé, il faut – comme pour toute page HTML – commencer par ouvrir les principales balises (html, head) ainsi que préciser l’encodage utilisé. On peut également en profiter pour définir le style désiré pour certaines balises types, ce qui évite d’avoir à préciser les mêmes éléments lors de l’utilisation de ces balises :

image

On peut remarquer l’utilisation de l’expression @ » et de « @ qui nous permettent pour une variable au format string d’utiliser plusieurs lignes, ce qui permet d’avoir un code HTML correctement agencé.

Afin d’ajouter le contenu de la variable dans le fichier HTML, il faut utiliser la commande “Add-Content” :

image

Maintenant que le début du fichier HTML est créé, le script doit maintenant récupérer les informations que l’on souhaite faire apparaitre dans le rapport HTML (nous verrons ce point dans la partie suivante de ce post) dans des tableaux que l’on génère au fur et à mesure dans une boucle qui parcoure toutes les ressources (VM ou Hoster) à interroger afin de créer ce type de vue :

image

Le rapport présenté ci-dessus contient 4 tableaux des ressources qui sont regroupés dans un tableau pour des raisons d’affichage.

Afin de maitriser la taille en largeur des tableaux HTML des ressources, on commence par récupérer le nombre de tableau que l’on va générer que l’on divise par la taille du bloc. De cette manière, les tableaux des ressources auront la même taille :

image

La génération des tableaux des ressources est faite à l’aide d’une boucle qui va pour chaque machine de la liste récupérer ses informations puis créer un tableau pour chaque ressource. Avant la boucle, un tableau vide est créé, il faut bien veiller à fermer ce tableau après la sortie de la boucle :

image

Conclusion

Dans cet article, nous avons vu comment faire à l’aide de PowerShell pour générer des rapport HTML.

Le plus important est de bien maitriser l’ordre de génération du code HTML de manière à ce que les balises respectent les règles du format HTML.

Dans l’article suivant, nous verrons comment récupérer les principales informations pour une VM et un hôte HYPER-V afin de les ajouter aux tableaux composant le rapport HTML.

Création et affectation d’un Switch convergé depuis SCVMM 2012

Nous allons ici créer un Switch Logique au travers de VMM et l’affecter à notre hôte Hyper-V.

L’affectation du Switch via VMM  va créer dans notre exemple le Teaming des cartes ainsi que les différentes VNICs avec la QOS associé.

Dans VMM, Créer un nouveau Port Profile

image

Donner un nom à ce nouveau Profil et sélectionner la configuration de Teaming que vous désirez créer pour vos hôtes Hyper-V en sélectionnant Uplink port profile et en sélectionnant le mode de Teaming souhaité et son algorithme de Load Balancing.

image

Sélectionner les différents Network Site que vous souhaiter intégrer a votre Port Profile et cocher Enable Windows Network Virtualization.

image

Le résumé de vos actions apparait.

Cliquer sur Finish

image

 

Nous allons maintenant créer un Logical Switch.

image

 

Cliquer sur Next

image

 

Donner le nom du Switch virtuel et cliquer sur Next.

image

 

Cliquer sur Next

 

image

 

Sélectionner Team et cliquer sur Add

image

Sélectionner le Port Profile précédemment créé et cliquer sur Ok.

image

Cliquer sur Next

image

Dans l’onglet Virtual Port, cliquer sur Add

image

Sélectionner les virtuals ports comme sur l’exemple ci dessous via le bouton Add.

(Ces virtuals ports sont nativement présent dans VMM et détiennent des Bandwidth Weight qui définiront notre QOS)

image

 

image

image

 

Cliquer sur Next

image

 

Cliquer sur Finish

image

 

Nous allons maintenant affecter à notre hyperviseur le Switch Logique précédemment créé.

Sélectionner votre Hôte et afficher ses propriétés.

image

 

Aller dans l’onglet Virtual Switches

image

Sélectionner New Logical Switch

image

 

Ici sélectionner les différentes interfaces réseaux devant participer à la configuration de votre Switch.

image

 

Nous allons maintenant ajouter 3 VNICs pour notre exemple qui permettront d’avoir des VNICs nécessaire pour notre cluster Hyper-V :

  • VNIC Cluster
  • VNIC Live Migration
  • VNIC Management

Cliquer sur New Virtual Network Adapter de manière à ajouter des VNICs

image

Procéder à la configuration de votre VNIC

image

Procéder de même pour les autres VNICs et cliquer sur OK.

image

 

Un message apparait. Cliquer sur OK

image

 

Votre Hyperviseur applique la configuration de votre Switch Convergé poussé depuis VMM.

Nos 3 VNICs sont maintenant apparue sur notre Hyperviseur.

image

 

Ces 3 VNICs détiennent également les configurations réseaux qui ont été appliqués.

image

Récupération des binaires d’installation de Windows Azure Pack installation Express en Local

 

Tout d’abord récupérer l’exécutable Microsoft Web Platform Installer disponible ici :

https://go.microsoft.com/?linkid=9737537

Procéder ensuite à son installation.

Une fois installé, ouvrez une fenêtre PowerShell.

Taper : cd ‘C:\Program Files\Microsoft\Web Platform Installer’

Taper ensuite :

.\WebpiCmd.exe /offline  /Products: »WAP_SingleMachineInstallation » 
/Path: »C:\WAP_Offline »
/XML:
https://www.microsoft.com/web/webpi/5.0/webproductlist.xml
/Log: »C:\WAP_Offline.log

(si vous souhaiter récupérer les binaires de WAP dans une version antérieure, le XML référencé doit être modifié. Par exemple pour récupérer la version 4.6, le commutateur /XML aura pour valeur : https://www.microsoft.com/web/webpi/4.6/webproductlist.xml )

 

La récupération des binaires s’exécutent

image

Et se finit.

image

Notre répertoire de destination contient désormais l’ensemble des binaires nécessaire pour l’installation de WAP en offline.

image