Pas de ligne de commandes sur cet article, juste un rapide coup d'oeil sur un projet que j'ai mené. En espérant que la lecture vous permette de saisir mieux encore l'utilité de Powershell (et de l'automatisation en général) dans le monde de l'entreprise!

Mais mettons un peu de contexte à cet article!

La santé d'un système d'information passe tout autant par les outils de supervision que par les vérifications humaines. Afin d'assurer la continuité du service, l'un de nos clients demande d'effectuer quotidiennement une vérification sur des paramètres divers et variés, critiques principalement.

Parmi ces critères l'on trouve :

  • Vérification de présence de fichiers datés du jour sur un emplacement réseau
  • Vérification du fonctionnement de services et processus
  • Vérification des sauvegardes de la nuit
  • Vérification de la mise à jour des bases antivirus (serveur et client)
  • Surveillance de l'espace sur deux baies NetApp
  • Etat d'un Snapmirror entre deux sites distants
  • Etat des machines HyperV
  • Surveillance de tâches planifiées spécifiques
  • Vérification de mise à jour de données issues d'un IBM AS400 et récupérées dans un fichier Excel via un connecteur ODBC
  • Vérification de l'état et des sauvegardes de l'AS400
  • Surveillance de graphiques de 3 serveurs métiers sur une page web

Effectuée manuellement, cette manipulation coûtait au technicien pas moins d'une heure par jour. Chaque point important, vérifié l'un après l'autre et consigné à but d'audit dans une base Access laissait place à des erreurs de saisie clavier, des pertes de temps supplémentaires dues aux demandes d'utilisateurs arrivant entre temps, et avait besoin d'être améliorée.

Après accord de l'équipe informatique en place, j'ai pris à bras le corps de moderniser le système de vérification quotidienne afin de l'automatiser au maximum et libérer un temps précieux sur d'autres projets. En totale autonomie sur cette remise à neuf, j'ai utilisé Powershell pour récolter les données, puis les mettre en place de manière scriptée dans la base Access.

Utilisant le module DataOnTap fourni pour l'administration des baies NetApp, j'ai reussi à obtenir en ligne de commande les espaces restants sur chaque partition (Nas / San) , le pourcentage restant sur chaque agrégat, mais également l'état du Snapmirror.

Avec l'outil BEMCMD fourni à l'installation de BackupExec 2010, j'ai pu récolter les données issues des sauvegardes, afin d'avoir leur état (reussite / echec) mais aussi la taille en Go de chaque.

Egalement, avec le Snappin HyperV pour Windows 2008R2, j'ai pu obtenir les informations des machines virtuelles, et leur état.

Puis en installant Office, le moteur de base de données Access et le connecteur ODBC sur le serveur qui heberge le script lancé chaque jour, j'ai pu lancer la mise à jour de fichiers Excel pour obtenir les informations les plus récentes en rafraichissant les données issues des tables de requête.

Après de nombreuses recherches, j'ai pu récuperer les données du serveur Antivirus (Officescan - Trend Micro) en parcourant un fichier de configuration contenant l'information sur la version de la base virale, puis ai fait de même sur un serveur ayant le client pour comparer les versions, et signaler un écart trop important.

En utilisant un objet Net.Webclient j'ai pu télécharger chaque image de graphique issue des serveurs métiers surveillés afin de les envoyer ultérieurement dans un mail de rapport.

Et enfin, J'ai crée un système analysant chaque journal de Snapshot de machine virtuelle, et générant des rapports sous forme de pages web directement accessibles depuis le formulaire Access, surlignant les messages d'erreur pour une lecture plus aisée.

En utilisant le transcripting dans Powershell (qui permet la sauvegarde de l'affichage de la console dans un fichier texte), j'ai obtenu le corps de mail des rapports à envoyer. Une fois l'intégralité des vérifications effectuées, l'ensemble s'inserre dans la base Access, et un mail contenant l'intégralité des valeurs issues des différentes commandes est envoyé à l'équipe informatique.

De toute la vérification ne reste d'actuellement non automatisable que la partie AS400, qui utilise une connexion Telnet et qui n'est qu'un affichage d'un écran distant nécessitant obligatoirement une présence humaine.

D'une heure, la vérification quotidienne est passée à 5 minutes, libérant un temps précieux.

Tout cela m'aura permis d'apprendre énormement sur la manière d'utiliser Powershell pour effectuer tout un panel de tâches extrêmement variées. Et pour celles et ceux qui se poseraient la question : l'intégralité du script fait 940 lignes.

En vous remerciant de votre lecture.

Ajouter un commentaire

Article précédent Article suivant