Le rôle de PowerShell dans un pipeline DevOps

ib

Comment utiliser PowerShell dans un pipeline DevOps ?

Nous le constatons tous au travers des médias ou dans notre vie quotidienne : jamais l’innovation technologique n’est allée aussi vite. Pour en tirer profit rapidement, si possible avant la concurrence, les entreprises accélèrent leur production. Dans le développement applicatif, cela se traduit par la mise en place d’organisations agiles et de méthodes de déploiement rapides. Nous allons étudier ensemble la boîte à outils Devops et plus particulièrement le rôle de Powershell dans un pipeline Devops. Voyons comment l'utilitaire de Microsoft, apparu en 2006, s’intègre parfaitement dans l'ingénierie logicielle moderne.

Retour rapide sur l’essentiel de la méthodologie Devops

Pour nous replacer dans le contexte, revenons brièvement sur Devops. Adoptée par la plupart des services de développement informatique[1], l’approche DevOps s’attache à accélérer la mise à disposition de logiciels en améliorant la collaboration entre les développeurs et les administrateurs système. Basée sur des objectifs de rapidité et de qualité délivrée aux utilisateurs, Devops met l’accent sur la communication et sur un élément essentiel pour un gain de temps significatif sur le time-to-market : l’automatisation.

Définition et rôles des pipelines DevOps

Le pipeline DevOps représente la volonté d’alimenter en continu l’environnement de production du système d’information. Il s’agit d’un ensemble de processus, largement automatisés, permettant aux développeurs et aux responsables opérationnels d’unir leurs efforts pour optimiser les déploiements et les mises à jour de logiciels. Particulièrement adaptés aux architectures en microservices, les pipelines DevOps permettent de raccourcir les cycles de validation et de mise à disposition aux utilisateurs. Dans un pipeline, les phases itératives de livraison, d’intégration et de test applicatifs s’enchaînent avec le minimum d’interventions humaines, tendant vers un objectif d’intégration continue. Pour y parvenir, les équipes DevOps peuvent s’appuyer sur des outils de gestion de configuration variés.

Les principaux outils DevOps pour automatiser les livraisons applicatives

Un pipeline DevOps inclut les soumissions de code (commit), l'intégration continue (CI) avec compilation et tests automatisés, et la génération de fichiers intermédiaires destinés aux étapes suivantes, appelés artefacts. Ensuite, la livraison continue (CD) déploie les artefacts dans des environnements de préproduction pour y effectuer des tests. Si les résultats sont satisfaisants, le déploiement se poursuit en production. Un pipeline DevOps intègre aussi le monitoring pour assurer la performance et recueillir des remontées d'information (feedbacks). En cas de problème après une compilation (built), la fonction de retour arrière (rollback) permet de revenir à une version précédente.

Des outils DevOps comme Jenkins, le plus répandu, ou GitHub Actions, Ansible et Azure Pipelines, gèrent et automatisent ces différentes étapes. Tous se basent sur un élément commun : les fichiers YAML. Leur structure définit les architectures cibles et génère les déploiements nécessaires. Plus facile à lire que ses équivalents JSON ou XML, YAML est un pilier de l’IaC(Infrastructure as Code). Il modélise le déroulement des tâches dans un pipeline DevOps, mais lorsqu’il s’agit d’appliquer une configuration technique sur un serveur, il montre ses limites. C’est à ce moment que Microsoft PowerShell entre en jeu.

Aller plus loin dans l’automatisation DevOps avec PowerShell

Nous arrivons au cœur de notre sujet en abordant les apports de PowerShell au sein d’un pipeline DevOps. L’outil de script de Microsoft se révèle complémentaire de YAML dans certaines tâches d’administration, notamment celles liées aux infrastructures. YAML, en tant que langage descriptif de haut niveau, ne peut accéder directement aux commandes système. Pour accéder à des commandes de configuration d’environnement, il est nécessaire de lancer des scripts PowerShell, accessibles après l’installation du module d’intégration PowerShell-YAML. L’administrateur DevOps peut dès lors insérer des routines PowerShell dans ses descriptions YAML, leur fournir des paramètres et en récupérer les résultats, formatés par l’instruction ConvertTo-Yaml. Cette inclusion du shell de commande permet une automatisation plus poussée et augmente considérablement la portée des outils DevOps. Avec les Scripts PowerShell pour DevOps, il devient possible d’écrire des séquences conditionnelles complexes traitant de

  • Configuration de serveurs
  • Gestion des utilisateurs
  • Installation de logiciels
  • Paramétrage de système d’exploitation
  • Interaction avec des interfaces de programmation (API) ou des services Web
  • Manipulation de fichiers et répertoires
  • Management de réseau

Autant de possibilités qui demeurent nativement inaccessibles à YAML. Elles apportent aux pipelines DevOps des capacités d’automatisation sophistiquée, mais aussi sécurisée grâce à la gestion d’erreurs intégrée à PowerShell.

Ce qu’il faut probablement retenir de cet exposé, c’est que PowerShell doit être considéré comme une compétence capitale pour un ingénieur DevOps. Les administrateurs qui connaissent déjà ce langage de script savent combien l’outil est puissant et parfaitement pris en charge par de nombreuses infrastructures. Ses aptitudes au dialogue avec les systèmes d’exploitation procurent à l’orchestrateur YAML de larges possibilités d’automatisation et de livraison continue sécurisée. La parfaite maîtrise du rôle de PowerShell dans un pipeline DevOps et de sa syntaxe en ligne de commande, c’est ce que vous propose ib Cegos dans sa formation « Automatiser les tâches d'administration Windows avec PowerShell ».

Automatiser les tâches d'administration Windows avec PowerShell
Optimiser son temps grâce à l'automatisation des tâches avec PowerShell
4.5 /5
(8 avis)

[1] https://www.gminsights.com/fr/industry-analysis/devops-market