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.
Exemple 1 : création de runbooks parent-enfant
L'exemple suivant montre comment créer deux runbooks qui corrigent les groupes étiquetés d'instances Amazon Elastic Compute Cloud (Amazon EC2) par étapes. Ces runbooks sont utilisés dans une relation parent-enfant, le runbook parent initiant une automatisation de contrôle de débit du runbook enfant. Pour de plus amples informations sur les automatisations de contrôle de débit, veuillez consulter Exécutez des opérations automatisées à grande échelle. Pour de plus amples informations sur les actions d'automatisation utilisées dans cet exemple, veuillez consulter Référence sur les actions Systems Manager Automation.
Créer le runbook enfant
Cet exemple de runbook contient le scénario suivant. Emily est ingénieur systèmes chez AnyCompany Consultants, LLC. Elle doit configurer l'application de correctifs pour les groupes d'instances Amazon Elastic Compute Cloud (Amazon EC2) qui hébergent des bases de données principale et secondaire. Les applications accèdent à ces bases de données 24 heures sur 24, de sorte que l'une des instances de base de données doit toujours être disponible.
Elle décide que la meilleure approche consiste à appliquer des correctifs par étapes pour les instances. Le groupe principal d'instances de base de données sera donc corrigé en premier, suivi du groupe secondaire d'instances de base de données. En outre, afin de ne pas encourir des coûts supplémentaires en laissant s'exécuter des instances précédemment arrêtées, Emily souhaite que les instances corrigées retrouvent leur statut d'origine avant l'application du correctif.
Emily identifie les groupes principal et secondaire d'instances de base de données grâce aux balises associées aux instances. Elle décide de créer un runbook parent qui démarre une automatisation de contrôle de débit d'un runbook enfant. Ce faisant, elle peut cibler les balises associées aux groupes principal et secondaire d'instances de base de données, et gérer la concurrence des automatisations enfants. Après avoir examiné les documents Systems Manager (SSM) disponibles pour l'application de correctifs, elle choisit le document AWS-RunPatchBaseline
. En utilisant ce document SSM, ses collègues peuvent examiner les informations de conformité des correctifs associées, une fois l'opération d'application de correctifs terminée.
Pour commencer à créer le contenu de son runbook, Emily examine les actions d'automatisation disponibles et commence à créer le contenu du runbook enfant comme suit :
-
Tout d'abord, elle fournit des valeurs pour le schéma et la description du runbook, et elle définit les paramètres d'entrée pour le runbook enfant.
En utilisant le paramètre
AutomationAssumeRole
, Emily et ses collègues peuvent utiliser un rôle IAM existant qui autorise Automation à effectuer des actions dans le runbook en leur nom. Emily utilise le paramètreInstanceId
pour déterminer l'instance qui doit être corrigée. Le cas échéant, les paramètresOperation
,RebootOption
etSnapshotId
peuvent servir à fournir des valeurs pour documenter les paramètres deAWS-RunPatchBaseline
. Afin d'empêcher que des valeurs non valides soient fournies à ces paramètres de document, elle définit lesallowedValues
selon besoin. -
Avec les éléments de niveau supérieur définis, Emily procède à la création des actions qui constituent les
mainSteps
du runbook. La première étape affiche le statut actuel de l'instance cible spécifiée dans le paramètre d'entréeInstanceId
via l'actionaws:executeAwsApi
. La sortie de cette action sera utilisée dans des actions ultérieures. -
Au lieu de démarrer manuellement et de garder une trace du statut d'origine de chaque instance à corriger, Emily utilise la sortie de l'action précédente pour activer l'automatisation en fonction du statut de l'instance cible. Cela permet à l'automatisation d'exécuter différentes étapes en fonction des conditions définies dans l'action
aws:branch
et de voir son efficacité globale améliorée, sans intervention manuelle.Si l'instance a déjà le statut
running
, l'automatisation procède à l'application de correctifs à l'instance avec le documentAWS-RunPatchBaseline
via l'actionaws:runCommand
.Si l'instance a déjà le statut
stopping
, l'automatisation interroge l'instance afin d'atteindre le statutstopped
via l'actionaws:waitForAwsResourceProperty
, démarre l'instance via l'actionexecuteAwsApi
et interroge l'instance afin d'atteindre le statutrunning
avant d'appliquer un correctif à l'instance.Si l'état de l'instance est
stopped
, l'automatisation démarre l'instance et interroge l'instance pour qu'elle atteigne un étatrunning
avant de corriger l'instance à l'aide des mêmes actions. -
Une fois l'opération d'application de correctifs terminée, Emily souhaite que l'automatisation ramène l'instance cible au statut qui était le sien avant le démarrage de l'automatisation. Pour cela, elle utilise à nouveau la sortie de la première action. L'automatisation s'active en fonction du statut d'origine de l'instance cible via l'action
aws:branch
. Si, auparavant, l'instance était dans un autre statut querunning
, l'instance est arrêtée. Sinon, si l'instance a le statutrunning
, l'automatisation se termine. -
Emily examine le contenu du runbook enfant terminé et crée le runbook dans le même Compte AWS et la même Région AWS que les instances cibles. Maintenant, elle est prête à passer à la création du contenu du runbook parent. Voici en quoi consiste le contenu du runbook enfant terminé.
Pour de plus amples informations sur les actions d'automatisation utilisées dans cet exemple, veuillez consulter Référence sur les actions Systems Manager Automation.
Créer le runbook parent
Cet exemple de runbook poursuit le scénario décrit dans la section précédente. Maintenant qu'Emily a créé le runbook enfant, elle commence à créer le contenu du runbook parent comme suit :
-
Tout d'abord, elle fournit des valeurs pour le schéma et la description du runbook, et elle définit les paramètres d'entrée pour le runbook parent.
En utilisant le paramètre
AutomationAssumeRole
, Emily et ses collègues peuvent utiliser un rôle IAM existant qui autorise Automation à effectuer des actions dans le runbook en leur nom. Emily utilise les paramètresPatchGroupPrimaryKey
etPatchGroupPrimaryValue
pour spécifier la balise associée au groupe principal d'instances de base de données qui seront corrigées. Elle utilise les paramètresPatchGroupSecondaryKey
etPatchGroupSecondaryValue
pour spécifier la balise associée au groupe secondaire d'instances de base de données qui seront corrigées. -
Avec les éléments de niveau supérieur définis, Emily procède à la création des actions qui constituent les
mainSteps
du runbook.La première action démarre une automatisation de contrôle de débit à l'aide du runbook enfant qu'elle vient de créer et qui cible les instances associées à la balise spécifiée dans les paramètres d'entrée
PatchGroupPrimaryKey
etPatchGroupPrimaryValue
. Elle utilise les valeurs fournies aux paramètres d'entrée pour spécifier la clé et la valeur de la balise associée au groupe principal d'instances de base de données qu'elle souhaite corriger.Une fois la première automatisation terminée, la seconde action démarre une autre automatisation de contrôle de débit à l'aide du runbook enfant et qui cible les instances associées à la balise spécifiée dans les paramètres d'entrée
PatchGroupSecondaryKey
etPatchGroupSecondaryValue
. Elle utilise les valeurs fournies aux paramètres d'entrée pour spécifier la clé et la valeur de la balise associée au groupe secondaire d'instances de base de données qu'elle souhaite corriger. -
Emily examine le contenu du runbook parent terminé et crée le runbook dans le même Compte AWS et la même Région AWS que les instances cibles. Maintenant, elle est prête à tester ses runbooks afin de s'assurer que l'automatisation fonctionne correctement avant de les implémenter dans son environnement de production. Voici en quoi consiste le contenu du runbook parent terminé.
Pour de plus amples informations sur les actions d'automatisation utilisées dans cet exemple, veuillez consulter Référence sur les actions Systems Manager Automation.