Création de runbooks Automation - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de runbooks Automation

Chaque runbook d'Automation, une fonctionnalité de AWS Systems Manager, définit une automatisation. Les runbooks Automation définissent les actions effectuées durant une automatisation. Dans le contenu du runbook, vous définissez les paramètres d'entrée, les sorties et les actions que Systems Manager exécute sur vos instances et AWS ressources gérées.

L'automatisation inclut plusieurs runbooks prédéfinis que vous pouvez utiliser afin d'effectuer des tâches courantes, telles que le redémarrage d'une ou plusieurs instances Amazon Elastic Compute Cloud (Amazon EC2) ou la création d'une Amazon Machine Image (AMI). Cependant, vos cas d'utilisation peuvent dépasser les fonctionnalités des runbooks prédéfinis. Dans ce cas, vous pouvez créer vos propres runbooks et les modifier en fonction de vos besoins.

Un runbook se compose d'actions d'automatisation, de paramètres relatifs à ces actions et de paramètres d'entrée que vous spécifiez. Le contenu d'un runbook est écrit en YAML ou en JSON. Si vous ne connaissez ni le YAML ni le JSON, nous vous recommandons d'utiliser le concepteur visuel ou d'en apprendre davantage sur l'un ou l'autre des langages de balisage avant d'essayer de créer votre propre runbook. Pour plus d'informations sur le concepteur visuel, consultezExpérience de conception visuelle pour les runbook d’automatisation.

Les sections suivantes vous aideront à créer votre premier runbook.

Identifier votre cas d'utilisation

La première étape de la création d'un runbook consiste à identifier votre cas d'utilisation. Par exemple, vous avez planifié le runbook AWS-CreateImage pour qu'il s'exécute quotidiennement sur toutes vos instances Amazon EC2 de production. À la fin du mois, vous décidez d'avoir plus d'images que nécessaire pour les points de récupération. Ensuite, vous voulez supprimer automatiquement l'AMI la plus ancienne d'une instance Amazon EC2 lorsqu'une nouvelle AMI est créée. Pour cela, vous créez un runbook qui :

  1. Exécute l'action aws:createImage et spécifie l'ID d'instance dans la description de l'image.

  2. Exécute l'action aws:waitForAwsResourceProperty pour interroger le statut de l'image jusqu'à ce qu'elle soit available.

  3. Une fois que l'image a le statut available, l'action aws:executeScript exécute un script Python personnalisé qui rassemble les ID de toutes les images associées à votre instance Amazon EC2. Pour cela, le script effectue un filtrage à l'aide de l'ID d'instance dans la description de l'image que vous avez spécifiée lors de la création. Ensuite, le script trie la liste des ID d'image en fonction de la creationDate de l'image et génère l'ID de l'AMI la plus ancienne.

  4. Enfin, l'action aws:deleteImage s'exécute pour supprimer l'AMI la plus ancienne à l'aide de l'ID de la sortie de l'étape précédente.

Dans ce scénario, vous utilisiez déjà le runbook AWS-CreateImage, mais vous avez constaté que votre cas d'utilisation nécessitait une plus grande flexibilité. C'est une situation courante en raison de l'éventualité d'un chevauchement entre les runbooks et les actions d'automatisation. Par conséquent, vous devrez peut-être ajuster les runbooks ou les actions à utiliser pour traiter votre cas d'utilisation.

Par exemple, les actions aws:executeScript et aws:invokeLambdaFunction vous permettent d'exécuter des scripts personnalisés dans le cadre de votre automatisation. Entre les deux, aws:invokeLambdaFunction peut vous sembler préférable du fait qu'elle prend en charge des langages d'exécution supplémentaires. Pour sa part, aws:executeScript vous permet de créer votre contenu de script directement dans les runbooks YAML et de fournir du contenu de script sous forme de pièces jointes pour les runbooks JSON. Vous pouvez même considérer que l'action aws:executeScript est plus simple en termes de configuration d' AWS Identity and Access Management (IAM). Comme il utilise les autorisations fournies dans leAutomationAssumeRole, il aws:executeScript ne nécessite pas de rôle d'exécution de AWS Lambda fonction supplémentaire.

Dans un scénario donné, une action peut offrir plus de flexibilité, ou des fonctionnalités supplémentaires, par rapport à l'autre. Nous vous recommandons donc d'examiner les paramètres d'entrée disponibles pour le runbook ou l'action à utiliser afin de déterminer celui qui correspond le mieux à votre cas d'utilisation et à vos préférences.

Configurer votre environnement de développement.

Après avoir identifié votre cas d'utilisation et les runbooks ou les actions d'automatisation prédéfinis à utiliser dans votre runbook, vous devez configurer votre environnement de développement pour le contenu de votre runbook. Pour développer le contenu de votre runbook, nous vous recommandons d'utiliser la console Documents AWS Toolkit for Visual Studio Code au lieu de la console Systems Manager Documents.

Le Toolkit for VS Code est une extension open source de Visual Studio Code (VS Code), qui offre davantage de fonctionnalités que la console de documents Systems Manager. Les fonctionnalités utiles incluent la validation de schéma pour YAML et JSON, des extraits pour les types d'action d'automatisation et la prise en charge de la saisie automatique de diverses options dans YAML et JSON.

Pour de plus amples informations sur l'installation du Toolkit for VS Code, veuillez consulter Installation du AWS Toolkit for Visual Studio Code. Pour plus d'informations sur l'utilisation de Toolkit for VS Code pour développer des runbooks, veuillez consulter Utilisation de documents Systems Manager Automation dans le Guide de l'utilisateur AWS Toolkit for Visual Studio Code .

Développer le contenu d'un runbook

Une fois votre cas d'utilisation identifié et votre environnement configuré, vous pouvez développer le contenu de votre Runbook. Votre cas d'utilisation et vos préférences dicteront en grande partie les actions d'automatisation ou les runbooks à utiliser dans le contenu de votre runbook. Certaines actions ne prennent en charge qu'un sous-ensemble de paramètres d'entrée, alors que d'autres vous permettent d'accomplir une tâche similaire. D'autres actions ont des sorties spécifiques, telles que aws:createImage, alors que certaines actions vous permettent de définir vos propres sorties, telles que aws:executeAwsApi.

Si vous ne savez pas comment utiliser une action particulière dans votre runbook, nous vous recommandons d'examiner l'entrée correspondante pour l'action dans Référence sur les actions Systems Manager Automation. Nous vous recommandons également d'examiner le contenu des runbooks prédéfinis afin de disposer d'exemples concrets sur la façon dont ces actions sont utilisées. Pour obtenir d'autres exemples d'applications réelles de runbooks, veuillez consulter Exemples supplémentaires de runbook.

Les didacticiels suivants vous démontreront les différences de simplicité et de flexibilité offertes par le contenu du runbook à l'aide d'exemples sur la façon de corriger des groupes d'instances Amazon EC2 par étapes :

  • Exemple 1 : création de runbooks parent-enfant - Dans cet exemple, deux runbooks sont utilisés dans une relation parent-enfant. Le runbook parent initie une automatisation de contrôle de débit du runbook enfant.

  • Exemple 2 : runbook scripté - Cet exemple vous explique comment accomplir les tâches de l'exemple 1 en condensant le contenu dans un seul runbook et en utilisant des scripts dans votre runbook.