Table of Contents
Azure Automation Runbooks est une pierre angulaire des opérations cloud modernes, permettant aux équipes informatiques d'automatiser des tâches répétitives et longues avec précision et fiabilité.En éloignant la gestion de routine de l'intervention manuelle, les organisations peuvent réduire les frais généraux opérationnels, minimiser les erreurs humaines et maintenir un environnement cloud cohérent et évolutif. Cet article fournit un guide complet sur les Runbooks Azure Automation, couvrant leur architecture, les cas d'utilisation courants, les meilleures pratiques d'implémentation, les considérations de sécurité et les modèles d'intégration avancés – tous adaptés pour l'automatisation de la production.
Comprendre les livres d'automatisme Azure
Un Runbook Azure Automation est essentiellement un script – écrit en PowerShell, Python ou composé graphiquement – qui exécute dans le service Azure Automation. Contrairement aux scripts ad-hoc exécutés sur une machine locale ou sur une seule VM, Runbooks bénéficie d'un environnement d'exécution entièrement géré qui comprend la gestion de modules intégrés, la manipulation des titres, la programmation et l'intégration avec d'autres services Azure. Le service Automation fournit un bac à sable où les scripts peuvent fonctionner soit dans le cloud (Sandbox Azure) soit sur une machine hybride à travailler dans votre propre réseau.
Types de carnets d'exécution
Azure Automation prend en charge trois types de Runbook distincts, adaptés à différents niveaux de compétence et cas d'utilisation:
- Graphical Runbooks – Créés à l'aide d'une interface glisser-déposer dans le portail Azure. Ils sont idéaux pour les administrateurs qui préfèrent les flux visuels sans code d'écriture. Chaque activité (par exemple, «Get-AzureVM») est un nœud, et la logique de flux est définie via des connecteurs.
- PowerShell Runbooks – scripts basés sur le texte écrits dans Windows PowerShell ou PowerShell Core. C'est le type le plus courant, offrant un accès complet aux cmdlets Azure, aux modules personnalisés et au framework .NET. PowerShell 7.2 runtimes sont maintenant pris en charge.
- Python Runbooks – Pour les équipes qui préfèrent Python, Azure Automation prend en charge les scripts Python 2 et Python 3. Ceci est utile lors de l'intégration avec les outils open-source ou lorsque l'expertise de l'équipe se trouve dans Python.
Chaque type de Runbook peut être édité directement dans le portail Azure ou importé d'un système de contrôle source comme GitHub ou Azure Repos. Le choix dépend de votre équipe de compétences et de la complexité de la logique d'automatisation.
Composantes de base de l'automatisation Azure
Au-delà des Runbooks, la plateforme Azure Automation comprend plusieurs composants complémentaires qui rendent l'automatisation fiable et sécurisée :
- Compte d'automatisation – Conteneur de gestion qui contient vos Runbooks, modules, identifiants, calendriers et variables. Il s'agit de la ressource de haut niveau pour tous les actifs d'automatisation.
- Ressources partagées – Pouvoirs (stockés en toute sécurité), objets de connexion, certificats et variables pouvant être référencés par plusieurs Runbooks sans coder des données sensibles.
- Schédules – Déclencheurs temporels qui démarrent les Runbooks à des intervalles précis (quotidiens, horaires, mensuels) ou à une date unique.
- Webhooks – Permettre aux systèmes externes (comme un pipeline CI/CD ou un outil de surveillance) de démarrer un Runbook via une requête HTTP POST.
- Modules – Paquets de modules PowerShell cmdlets ou Python qui prolongent les capacités Runbook. Azure Automation comprend des modules Azure intégrés, mais vous pouvez importer des modules personnalisés ou tiers.
- Hybrid Runbook Worker – Extension de l'exécution de Runbook aux machines sur site ou à d'autres environnements cloud, permettant l'automatisation des ressources qui ne sont pas accessibles depuis la bac à sable Azure.
Scénarios d'automatisation courants communs
Azure Automation Runbooks brille lorsqu'il est appliqué à des tâches prévisibles et répétitives. Ci-dessous sont des scénarios détaillés que de nombreuses organisations mettent en œuvre dans le cadre de leurs opérations quotidiennes de cloud.
Gestion automatisée de machines virtuelles
L'un des cas d'utilisation les plus populaires est programmé pour démarrer/stop VM pour économiser des coûts pendant les heures non-professionnelles. Par exemple, un Runbook peut arrêter tous les VM dans un groupe de ressources à 19h00 et les démarrer à 6h00 en utilisant une combinaison de et cmdlets.
Automatisation de sauvegarde et de récupération
Par exemple, vous pouvez créer un Runbook qui déclenche une sauvegarde d'une base de données SQL Azure, puis copie le fichier de sauvegarde sur un compte de stockage secondaire dans une autre région pour la géo-redondance. De même, Runbooks peut automatiser la restauration d'un VM à partir d'une chambre forte des Services de récupération, vérifier la restauration réussie, puis envoyer une notification via Microsoft Teams ou email.
Nettoyage des ressources et optimisation des coûts
Un Runbook peut scanner tous les abonnements pour les disques orphelins, les adresses IP publiques non jointes, les balanceurs de charge inactif ou les anciens instantanés et les supprimer automatiquement. Pour éviter une suppression accidentelle, incluez la logique d'approbation : le Runbook peut d'abord générer un rapport, l'envoyer par courriel à un administrateur et ne procéder à la suppression qu'après avoir reçu une confirmation via une application logique Azure ou un webhook.
Réponse automatisée à l'incident
Lorsque jumelé à des alertes Azure Monitor, Runbooks peut agir comme premiers intervenants. Par exemple, si un processeur VM=2 dépasse 90 % pendant cinq minutes, une alerte peut déclencher un Runbook qui balance le VM jusqu'à un UGS plus grand (sous réserve de contraintes budgétaires).
Avantages de l'adoption de cahiers de course pour les tâches courantes
La proposition de valeur des Runbooks Azure Automation s'étend bien au-delà des simples économies de temps. Voici les principaux avantages qui justifient l'investissement dans l'automatisation:
- Erreur humaine réduite – Les processus manuels sont sujets à des typos, des étapes d'échec ou des configurations incohérentes. Un Runbook exécute le même script à chaque fois, éliminant ainsi la variabilité.
- Opérations accélérées – Les tâches qui ont pris une fois un ingénieur 10-15 minutes peuvent être terminées en quelques secondes. Plus de centaines de tâches par semaine, la récupération cumulative du temps est importante.
- Auditabilité et conformité[ – Chaque exécution de Runbook est enregistrée dans le journal d'activités Azure et peut être stockée dans Log Analytics. Ceci fournit une chaîne de garde claire pour les exigences réglementaires, comme la vérification que les sauvegardes se déroulent nuit ou que les VM sont arrêtés après des heures.
- Cost Control[ – Automatiser les horaires de démarrage/arrêt, supprimer les ressources orphelines et la responsabilisation a une incidence directe sur le résultat, payant souvent plusieurs fois le compte d'automatisation.
- Resilience opérationnelle[ – Les livres de course peuvent être conçus avec une logique de ré-essai, une manipulation des erreurs et des procédures de repli, rendant les opérations en nuage plus robustes aux défaillances transitoires.
Configuration de votre premier Runbook d'automatisation Azure
Pour commencer, vous avez besoin d'un abonnement Azure et d'un compte d'automatisation. Les étapes suivantes décrivent le processus de haut niveau:
- Créer un compte d'automatisation – Dans le portail Azure, recherchez «Comptes d'automatisation» et créez-en un. Choisissez une région qui prend en charge Azure Automation (la plupart font), et laissez les options par défaut pour l'identité gérée et le chiffrement.
- Apposer une autorisation – Le Compte d'automatisation a besoin d'autorisations pour agir sur les ressources Azure. Configurer une identité gérée assignée par le système ou un directeur de service avec les rôles nécessaires du CCR (p. ex., Contributeur sur un groupe de ressources pour l'automatisation VM).
- Importer les modules requis – Si votre Runbook utilise des cmdlets personnalisés, allez sous « Ressources partagées > Modules » et importez-les. Les modules Azure sont mis à jour automatiquement, mais les modules tiers doivent être ajoutés manuellement.
- Créer un Runbook – Sous "Automatisation des processus > Runbooks", cliquez sur "Créer un Runbook". Donnez-lui un nom, sélectionnez le type (PowerShell est recommandé pour les nouveaux utilisateurs), et choisissez une version d'exécution (PowerShell 7.2 pour le support multiplateforme).
- Auteur du Script – Modifier le Runbook en utilisant l'éditeur intégré ou un outil externe. Au minimum, inclure la gestion des erreurs avec des blocs d'essai/de capture et utiliser pour s'assurer que le Runbook s'arrête sur les pannes critiques.
- Ajouter des horaires ou des Webhooks – Liener le Runbook à une ou plusieurs horaires, ou créer un webhook pour le déclencher à partir d'outils externes comme Azure DevOps ou ServiceNow.
- Test et Publier – Utilisez le volet «Test» pour exécuter le Runbook contre un environnement de test. Une fois vérifié, publiez le Runbook pour le rendre disponible pour utilisation de production.
Calendrier avancé et déclencheurs d'événements
Bien que les déclencheurs manuels et programmés soient simples, Azure Automation prend également en charge l'automatisation par événement grâce à l'intégration avec Azure Event Grid et Azure Monitor.
Intégration de la grille d'événements
En vous inscrivant à des événements Azure Event Grid, vous pouvez déclencher un Runbook chaque fois qu'un événement spécifique de ressource se produit, comme une création de VM, un blob de stockage en cours de téléchargement ou un changement de tag. Par exemple, un Runbook peut automatiquement taper tous les nouveaux VM avec une balise « CostCenter » en fonction de l'abonnement dans lequel ils sont créés, en veillant à ce que les politiques de gouvernance soient appliquées dès le premier jour.
Alertes de surveillance Azure
Configurer un groupe d'action pour invoquer un Runbook lorsqu'un signal d'alerte métrique ou log est allumé. Ceci permet une restauration entièrement automatisée : une alerte pour « Disk space > 90% » peut déclencher un Runbook qui nettoie des fichiers temporaires ou augmente la taille du disque. Le Runbook peut alors mettre à jour l'état d'alerte pour indiquer le succès ou l'échec.
Considérations des travailleurs hybrides
Si vous devez automatiser les tâches sur site ou sur VM non Azure (par exemple, AWS EC2 ou VMware), déployez un travailleur hybride Runbook. Cet agent fonctionne sur une machine Windows ou Linux et exécute Runbook localement, vous permettant de gérer des serveurs qui ne peuvent pas atteindre directement les paramètres Azure. Le travailleur s'enregistre avec votre compte d'automatisation et peut être ciblé via les paramètres Runbook.
Pratiques exemplaires en matière de sécurité pour les livres d'exécution
L'automatisation introduit des risques potentiels de sécurité si elle n'est pas bien gérée. Suivez ces lignes directrices pour protéger votre environnement :
- Utiliser les identités gérées – Au lieu de coder les identifiants principaux du service, utilisez le compte d'automatisations assigné ou assigné par l'utilisateur pour authentifier les ressources Azure. Cela élimine le besoin de stocker et de faire tourner les secrets.
- Vault de clé de levier Azure – Pour les secrets qui sont des ressources Azure (p. ex., clés API, mots de passe de base de données), les stocker dans Key Vault et les récupérer au moment de l'exécution en utilisant le cmdlet.
- Cryptage des variables sensibles[ – Les variables du compte d'automatisation peuvent être marquées comme étant « chiffrées». Utilisez-les pour de petits secrets, mais préférez Key Vault pour des secrets plus grands ou fréquemment tournés.
- Appliquer le moindre privilège – N'accorder au Compte d'automatisation ou à son identité gérée que les autorisations minimales requises. Par exemple, un livre de course qui arrête uniquement les VM devrait avoir «Contributeur virtuel de machine» au niveau du groupe de ressources, et non pas Contributeur d'abonnement.
- Restrict Webhook Access[ – Les Webhooks sont des URLs accessibles au public. Utilisez un jeton d'autorisation dans l'en-tête ou combinez avec Azure API Management pour valider les appelants. Évitez d'utiliser webhooks pour les Runbooks à haut niveau de privilèges sans authentification supplémentaire.
- Code Runbook de vérification – Traitez vos scripts Runbook comme n'importe quel autre code : examinez-les dans les requêtes de tirage, utilisez le contrôle source et scannez le contenu malveillant avant de déployer.
Surveillance et exploitation des exécutions de Runbook
La visibilité des performances et des défaillances de Runbook est essentielle pour maintenir une automatisation fiable. Azure Automation fournit plusieurs fonctions de surveillance intégrées:
- Statut de l'emploi – Dans le portail, vous pouvez voir une liste des exécutions récentes d'emplois, leur statut (Queued, Running, Complete, Failed) et le temps pris. Les emplois échoués contiennent des sorties d'erreurs qui peuvent être consultées directement.
- Verbose et Progress Streams – En ajoutant des énoncés et à votre Runbook, vous activez la logation détaillée qui aide à déboger. Vous devez configurer les niveaux de log «Verbose» et «Progress» dans les paramètres de Runbook.
- Log Analytics Integration – Envoyez les journaux de tâches dans un espace de travail Log Analytics en permettant le réglage "Azure Diagnostics" sur votre compte Automation. Cela vous permet de créer des tableaux de bord personnalisés, des alertes sur les taux d'échec et des requêtes avancées Kusto pour analyser les tendances au fil du temps.
- Alerter sur les pannes – Utilisez Azure Monitor pour créer une règle d'alerte qui déclenche lorsqu'un travail d'automatisation se termine avec un statut "échec".
Gestion des coûts et des ressources
Le prix Azure Automation est basé sur le nombre de minutes d'exécution de travail et la quantité de stockage utilisée pour les logs. Cependant, le service a un niveau gratuit généreux: les 500 premières minutes d'exécution de travail par mois sont gratuites, ce qui couvre de nombreux petits à moyens environnements.
Pour optimiser les coûts, il faut tenir compte de ces conseils :
- ]Utilisez pour chaîner les Runbooks – Au lieu de mettre toute la logique dans un seul Runbook à long terme, le casser en petits Runbooks ciblés qui se déclenchent. Cela peut réduire les minutes de facturation par emploi parce que les petites tâches échouent redémarre plus rapidement.
- Éviter les boucles de vote – Si votre Runbook doit attendre un processus externe, utilisez Azure Logic Apps pour gérer le sondage et appeler un Runbook seulement lorsque la condition est remplie.
- Durées de travail du moniteur – Examiner régulièrement les emplois à long terme. Si un Runbook prend plus de quelques minutes, optimiser le script ou envisager s'il peut être divisé en tâches parallèles.
Intégration avec Azure DevOps et CI/CD
Pour adopter l'automatisation à l'échelle, traitez vos Runbooks comme un code et les intégrer dans votre cycle de vie de développement. Stockez les fichiers sources Runbook dans un dépôt Git (Azure Repos, GitHub, ou GitLab). Utilisez un pipeline CI/CD pour valider la syntaxe, exécutez des tests unitaires (p. ex. Pester for PowerShell), puis publiez automatiquement le Runbook sur le compte d'automatisation.
Azure Automation prend également en charge les solutions de gestion de mise à jour et de suivi des changements, qui peuvent automatiser davantage le patching et la détection de dérive de configuration. Ces fonctionnalités sont construites sur le même moteur Runbook et peuvent être intégrées dans votre stratégie d'automatisation globale.
Modèles de mise en œuvre du monde réel
D'après l'expérience de l'industrie, voici deux modèles robustes utilisés par les organisations pour gérer les tâches courantes :
Modèle 1: Économies avec démarrage automatique/arrêt
Une grande entreprise utilise un seul livre de course PowerShell qui lit une liste d'ID VM à partir d'un fichier sécurisé Azure Blob Storage. Le livre de course est programmé deux fois par jour – une fois pour démarrer les VM à 7h et une fois pour les arrêter à 19h. Il comprend une table de recherche pour les vacances d'affaires (par exemple, Noël) pour sauter les démarrages.
Modèle 2 : Nettoyage des ressources sous l'effet de la conformité
Une société de services financiers utilise un Runbook déclenché par un événement (via Event Grid) qui surveille les événements "Microsoft.Compute/virtualMachines/write". Lorsqu'un nouveau VM est créé, le Runbook vérifie la présence d'une étiquette obligatoire. En cas d'absence, il alerte le propriétaire par courriel et, après une période de grâce de 24 heures, ferme le VM. Cela garantit que toutes les ressources sont étiquetées pour le suivi des coûts et la gouvernance.
Conclusion
Azure Automation Runbooks offre une façon mature, flexible et rentable de gérer les tâches de routine en nuage. En automatisant le cycle de vie de VM, les sauvegardes, le nettoyage des ressources et la réponse incidente, les équipes informatiques peuvent réduire considérablement la charge de travail manuelle tout en améliorant la fiabilité et la sécurité. La clé du succès réside dans le démarrage d'une tâche simple, automatiser d'abord, puis étendre. Implémenter des contrôles de sécurité appropriés, utiliser des identités gérées et de la surveillance de levier pour itérer.
- Documentation officielle: Aperçu de l'automatisation de l'Azur
- Guide de création de Runbook: L'automatisation d'Azur Runbook Auteur
- Meilleures pratiques en matière de sécurité: Directives de sécurité pour l'automatisation