AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.
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 d’associations qui exécutent des recettes Chef
Vous pouvez créer des associations State Manager qui exécutent des recettes Chef à l’aide du document SSM AWS-ApplyChefRecipes. State Manager est un outil d’ AWS Systems Manager. Vous pouvez cibler des nœuds gérés par Systems Manager basés sur Linux avec le document SSM AWS-ApplyChefRecipes. Ce document offre les avantages suivants pour l’exécution de recettes Chef :
-
Il prend en charge plusieurs versions de Chef (de Chef 11 à Chef 18).
-
Il installe automatiquement le logiciel client Chef sur les nœuds cibles.
-
Il exécute éventuellement des contrôles de conformité Systems Manager sur les nœuds cibles et stocke les résultats des contrôles de conformité dans un compartiment Amazon Simple Storage Service (Amazon S3).
-
Il exécute plusieurs livres de cuisine et recettes en une seule fois du document.
-
Il peut exécuter des recettes en mode
why-run, pour afficher lesquelles changeront sur les nœuds cibles sans y apporter de modifications. -
Il peut appliquer des attributs JSON personnalisés aux exécutions
chef-client. -
Applique éventuellement des attributs JSON personnalisés à partir d'un fichier source stocké à l'emplacement spécifié.
Vous pouvez utiliser des compartiments Git, GitHub, HTTP ou Amazon S3 comme sources de téléchargement pour les livres de recettes et les recettes Chef que vous spécifiez dans un document AWS-ApplyChefRecipes.
Note
Les associations exécutant des recettes Chef ne sont pas prises en charge sur macOS.
Prise en main
Avant de créer un document AWS-ApplyChefRecipes, préparez votre référentiel de livres de recettes et de recettes Chef. Si vous n'avez pas encore de Chef livre de recettes que vous souhaitez utiliser, vous pouvez commencer par utiliser un HelloWorld livre de recettes de test préparé pour vous. AWS Le document AWS-ApplyChefRecipes pointe déjà vers ce livre de recettes par défaut. Vos livres de recettes doivent être configurés de la même manière que la structure de répertoire suivante. Dans l’exemple suivant, jenkins et nginx sont des exemples de livres de recettes Chef disponibles dans le Chef Supermarket
Bien que les livres de cuisine ne AWS puissent pas être officiellement pris en charge sur le Chef SupermarketAWS-ApplyChefRecipes document. Voici des exemples de critères à déterminer lorsque vous testez un livre de recette de la communauté :
-
Le livre de recettes doit prendre en charge les systèmes d'exploitation basés sur Linux des nœuds gérés par Systems Manager que vous ciblez.
-
Le livre de recettes doit être valide pour la version client de Chef que vous utilisez (de Chef 11 à Chef 18).
-
Le livre de recettes est compatible avec Chef Infra Client et ne nécessite pas de serveur Chef.
Vérifiez que vous pouvez accéder au site web Chef.io, afin que tous les livres de recettes que vous spécifiez dans votre liste d’exécution puissent être installés lors de l’exécution du document Systems Manager (document SSM). L'utilisation d'un fichier cookbooks imbriqué est prise en charge, mais pas obligatoire ; vous pouvez stocker des livres de recettes directement dans le niveau racine.
<Top-level directory, or the top level of the archive file (ZIP or tgz or tar.gz)> └── cookbooks (optional level) ├── jenkins │ ├── metadata.rb │ └── recipes └── nginx ├── metadata.rb └── recipes
Important
Avant de créer une association State Manager qui exécute des recettes Chef, sachez que l’exécution du document installe le logiciel client Chef sur vos nœuds gérés Systems Manager, sauf si vous définissez la valeur de la version du client Chef sur None. Cette opération utilise un script d’installation de Chef pour installer les composants Chef en votre nom. Avant d’exécuter un document AWS-ApplyChefRecipes, assurez‑vous que votre entreprise peut se conformer à toutes les exigences légales en vigueur, y compris les conditions de licence applicables à l’utilisation du logiciel Chef. Pour plus d’informations, consultez le site web Chef
Systems Manager peut fournir des rapports de conformité à un compartiment S3, à la console Systems Manager ou rendre les résultats de conformité disponibles en réponse aux commandes d'API Systems Manager. Pour exécuter des rapports de conformité Systems Manager, le profil d'instance attaché aux nœuds gérés par Systems Manager doit disposer des autorisations d'écriture dans le compartiment S3. Le profil d'instance doit être autorisé à utiliser l'API Systems Manager PutComplianceItem. Pour de plus amples informations sur Systems Manager, consultez Conformité d'AWS Systems Manager.
Journalisation de l'exécution du document
Lorsque vous exécutez un document Systems Manager (document SSM) à l'aide d'une State Manager association, vous pouvez configurer l'association pour choisir la sortie du document à exécuter, et vous pouvez envoyer la sortie à Amazon S3 ou Amazon CloudWatch Logs (CloudWatch Logs). Pour faciliter le dépannage lorsqu'une association est terminée, vérifiez que l'association est configurée pour écrire la sortie de commande dans un compartiment Amazon S3 ou dans CloudWatch des journaux. Pour de plus amples informations, veuillez consulter Utilisation d'associations dans Systems Manager.
Appliquer des attributs JSON aux cibles lors de l'exécution d'une recette
Vous pouvez spécifier des attributs JSON que votre client Chef doit appliquer aux nœuds cibles lors de l’exécution d’une association. Lors de la configuration de l'association, vous pouvez fournir du code JSON brut ou indiquer le chemin d'accès à un fichier JSON stocké dans Amazon S3.
Utilisez les attributs JSON lorsque vous souhaitez personnaliser le mode d'exécution de la recette sans avoir à modifier la recette elle-même, par exemple :
-
Remplacer un petit nombre d'attributs
Utilisez JSON personnalisé pour éviter d'avoir à gérer plusieurs versions d'une recette pour tenir compte de différences mineures.
-
Fournir des valeurs variables
Utilisez le JSON personnalisé pour spécifier les valeurs susceptibles de changer par rapport à run-to-run. Par exemple, si vos livres de recettes Chef configurent une application tierce qui accepte les paiements, vous pouvez utiliser un JSON personnalisé pour spécifier l’URL du point de terminaison de paiement.
Spécifier des attributs en JSON brut
Voici un exemple du format que vous pouvez utiliser pour spécifier des attributs JSON personnalisés pour votre recette Chef.
{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Spécifier un chemin d'accès à un fichier JSON
Voici un exemple du format que vous pouvez utiliser pour spécifier le chemin d’accès aux attributs JSON personnalisés pour votre recette Chef.
{"sourceType":"s3", "sourceInfo":"someS3URL1"}, {"sourceType":"s3", "sourceInfo":"someS3URL2"}
Utiliser Git comme source de livre de recettes
Le document AWS-ApplyChefRecipes utilise le plug‑in aws:downloadContent pour télécharger les livres de recettes Chef. Pour télécharger du contenu à partir de Git, spécifiez les informations relatives à votre référentiel Git au format JSON, comme dans l'exemple suivant. Remplacez chaque example-resource-placeholder par vos propres informations.
{ "repository":"GitCookbookRepository", "privateSSHKey":"{{ssm-secure:ssh-key-secure-string-parameter}}", "skipHostKeyChecking":"false", "getOptions":"branch:refs/head/main", "username":"{{ssm-secure:username-secure-string-parameter}}", "password":"{{ssm-secure:password-secure-string-parameter}}" }
Utiliser GitHub comme source de livre de recettes
Le document AWS-ApplyChefRecipes utilise le plug‑in aws:downloadContent pour télécharger les livres de recettes. Pour télécharger du contenu à partir de GitHub, spécifiez les informations relatives à votre référentiel GitHub au format JSON, comme dans l’exemple suivant. Remplacez chaque example-resource-placeholder par vos propres informations.
{ "owner":"TestUser", "repository":"GitHubCookbookRepository", "path":"cookbooks/HelloWorld", "getOptions":"branch:refs/head/main", "tokenInfo":"{{ssm-secure:token-secure-string-parameter}}" }
Utiliser HTTP comme source de livre de recettes
Vous pouvez stocker les livres de recettes Chef dans un emplacement HTTP personnalisé sous la forme d’un fichier individuel .zip ou tar.gz, ou d’une structure de répertoires. Pour télécharger du contenu depuis HTTP, spécifiez le chemin d'accès au fichier ou au répertoire au format JSON comme dans l'exemple suivant. Remplacez chaque example-resource-placeholder par vos propres informations.
{ "url":"https://my.website.com/chef-cookbooks/HelloWorld.zip", "allowInsecureDownload":"false", "authMethod":"Basic", "username":"{{ssm-secure:username-secure-string-parameter}}", "password":"{{ssm-secure:password-secure-string-parameter}}" }
Utiliser Amazon S3 comme source de livre de recettes
Vous pouvez également stocker et télécharger des livres de recettes Chef dans Amazon S3 sous la forme d’un fichier individuel .zip ou tar.gz, ou d’une structure de répertoires. Pour télécharger du contenu depuis Amazon S3, spécifiez le chemin d'accès au fichier au format JSON comme dans les exemples suivants. Remplacez chaque example-resource-placeholder par vos propres informations.
Exemple 1 : Télécharger un livre de recettes spécifique
{ "path":"https://s3.amazonaws.com/chef-cookbooks/HelloWorld.zip" }
Exemple 2 : Télécharger le contenu d'un répertoire
{ "path":"https://s3.amazonaws.com/chef-cookbooks-test/HelloWorld" }
Important
Si vous spécifiez Amazon S3, le profil d'instance AWS Identity and Access Management (IAM) sur vos nœuds gérés doit être configuré avec la AmazonS3ReadOnlyAccess politique. Pour plus d’informations, consultez la section Configurer des autorisations d’instance requises pour Systems Manager.
Création d’une association qui exécute les recettes Chef (console)
La procédure suivante décrit comment utiliser la console Systems Manager pour créer une association State Manager qui exécute les livres de recettes Chef à l’aide du document AWS-ApplyChefRecipes.
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le panneau de navigation, sélectionnez State Manager.
-
Sélectionnez State Manager, puis Create association (Créer une association).
-
Pour Name (Nom), saisissez un nom qui vous aide à mémoriser l'objectif de l'association.
-
Dans la liste Document, sélectionnez
AWS-ApplyChefRecipes. -
Dans Paramètres, pour Type de source, sélectionnez Git, GitHub, HTTP ou S3.
-
Pour Informations sur la source, entrez les informations sur la source du livre de recettes en utilisant le format approprié pour le Type de source que vous avez sélectionné à l'étape 6. Pour plus d’informations, consultez les rubriques suivantes :
-
Dans la Run list (Liste d'exécution), listez les recettes que vous souhaitez exécuter au format suivant, en séparant chaque recette par une virgule comme indiqué. N'ajoutez pas d'espace après la virgule. Remplacez chaque
example-resource-placeholderpar vos propres informations.recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name] -
(Facultatif) Spécifiez les attributs JSON personnalisés que vous souhaitez que le client Chef transmette à vos nœuds cibles.
-
Dans Contenu des attributs JSON, ajoutez tous les attributs que vous souhaitez que le client Chef transmette à vos nœuds cibles.
-
Dans Sources d’attributs JSON, ajoutez les chemins d’accès à tous les attributs que vous souhaitez que le client Chef transmette à vos nœuds cibles.
Pour de plus amples informations, veuillez consulter Appliquer des attributs JSON aux cibles lors de l'exécution d'une recette.
-
-
Pour Version du client Chef, spécifiez une version de Chef. Les valeurs valides vont de
11à18ouNone. Si vous spécifiez un nombre compris entre11et18(inclus), Systems Manager installe la version du client Chef correspondante sur vos nœuds cibles. Si vous spécifiezNone, Systems Manager n’installe pas le client Chef sur les nœuds cibles avant d’exécuter les recettes du document. -
(Facultatif) Pour Arguments du client Chef, spécifiez des arguments supplémentaires pris en charge pour la version de Chef que vous utilisez. Pour en savoir plus sur les arguments pris en charge, exécutez
chef-client -hsur un nœud qui exécute le client Chef. -
(Facultatif) Activez Why-run pour afficher les modifications qui seront apportées aux nœuds cibles si les recettes sont exécutées, sans modifier réellement les nœuds cibles.
-
Pour Compliance severity (Sévérité de conformité), sélectionnez la sévérité des résultats de conformité de la configuration Systems Manager que vous voulez rapportés. Les rapports de conformité indiquent si l'état de l'association est conforme ou non conforme, ainsi que le niveau de sévérité que vous spécifiez. Les rapports de conformité de la configuration sont stockés dans un comp)artiment S3 que vous spécifiez comme valeur du paramètre de Compliance report bucket (Compartiment de rapport de conformité (étape 14). Pour de plus amples informations sur la conformité, consultez En savoir plus sur la conformité dans ce guide.
Les analyses de conformité mesurent la dérive entre la configuration spécifiée dans vos recettes Chef et les ressources de nœud. Les valeurs valables sont
Critical,High,Medium,LowInformationalUnspecifiedouNone. Pour ignorer les rapports de conformité, sélectionnezNone. -
Pour Compliance type (Type de conformité), spécifiez le type de conformité pour lequel vous souhaitez que les résultats soient rapportés. Les valeurs valides
Associationconcernent State Manager les associations ouCustom:custom-type. La valeur par défaut estCustom:Chef. -
Pour Compartiment de rapport de conformité, saisissez le nom d’un compartiment S3 dans lequel stocker des informations sur chaque Chef exécuté par ce document, y compris la configuration des ressources et les résultats de conformité.
-
Dans Rate control (Contrôle du débit), configurez des options pour l'exécution d'associations State Manager dans un parc de nœuds gérés. Pour plus d'informations sur l'utilisation des contrôles de débit, consultez Comprendre les cibles et les contrôles du taux dans les associations State Manager.
Dans Concurrency (Simultanéité), sélectionnez une option :
-
Sélectionnez targets (cibles) pour entrer un nombre absolu de cibles pouvant exécuter l'association simultanément.
-
Sélectionnez percentage (pourcentage) pour saisir un pourcentage de l'ensemble de cibles pouvant exécuter l'association simultanément.
Dans Error threshold (Seuil d'erreur), sélectionnez une option :
-
Sélectionnez errors (erreurs) pour saisir un nombre absolu d'erreurs autorisées avant que State Manager ne cesse d'exécuter des associations sur des cibles supplémentaires.
-
Sélectionnez percentage (pourcentage) pour saisir un pourcentage d'erreurs autorisées avant que State Manager ne cesse d'exécuter des associations sur des cibles supplémentaires.
-
(Facultatif) Dans Output options (Options de sortie), pour enregistrer la sortie de la commande dans un fichier, sélectionnez Enable writing to an S3 bucket (Autoriser l'écriture dans un compartiment S3) Saisissez les noms de compartiment et de préfixe (dossier) dans les zones.
Note
Les autorisations S3 qui donnent la possibilité d'écrire les données dans un compartiment S3 sont celles du profil d'instance attribué au nœud géré, et non celles de l'utilisateur IAM qui effectue cette tâche. Pour plus d’informations, consultez les sections Configurer des autorisations d’instance requises pour Systems Manager et Créer un rôle de service IAM pour un environnement hybride. En outre, si le compartiment S3 spécifié se trouve sur un autre Compte AWS, vérifiez que le profil d'instance ou la fonction de service IAM associé au nœud géré dispose des autorisations nécessaires pour écrire dans ce compartiment.
-
Sélectionnez Create Association (Créer une association).
Création d’une association qui exécute des recettes Chef (CLI)
La procédure suivante décrit comment utiliser le AWS Command Line Interface (AWS CLI) pour créer une State Manager association qui exécute les livres de recettes Chef à l'aide du AWS-ApplyChefRecipes document.
Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.
Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l' AWS CLI.
-
Exécutez l’une des commandes suivantes pour créer une association qui exécute des livres de recettes Chef sur les nœuds cibles disposant des balises spécifiées. Utilisez la commande adaptée au type de source de votre livre de cuisine et à votre système d'exploitation. Remplacez chaque
example-resource-placeholderpar vos propres informations.-
Source Git
-
GitHub source
Voici un exemple.
-
Source HTTP
-
Source Amazon S3
Voici un exemple.
Le système crée l'association et, à moins que votre expression cron ou rate spécifiée ne l'empêche, le système exécute l'association sur les nœuds cibles.
Note
Les associations State Manager ne prennent pas en charge toutes les expressions cron et rate. Pour plus d'informations sur la création d'expressions cron et rate pour des associations, consultez Référence : Expressions Cron et Rate pour Systems Manager.
-
-
Exécutez la commande suivante pour afficher le statut de l'association que vous venez de créer.
aws ssm describe-association --association-id "ID"
Affichage des détails de conformité des ressources Chef
Systems Manager capture les informations de conformité sur les ressources gérées par Chef dans la valeur de compartiment de rapport de conformité Amazon S3 que vous avez spécifiées lors de l’exécution du document AWS-ApplyChefRecipes. La recherche d’informations sur les défaillances de ressources Chef dans un compartiment S3 peut prendre un certain temps. Au lieu de cela, vous pouvez consulter ces informations sur la page Compliance (Conformité) de Systems Manager.
Une analyse de conformité Systems Manager collecte des informations sur les ressources de vos nœuds gérés qui ont été créées ou vérifiées lors de la dernière exécution de Chef. Les ressources peuvent inclure des fichiers, des répertoires, des services systemd, des packages yum, des fichiers modélisés, des packages gem et des livres de recettes dépendants, entre autres.
La section Récapitulatif des ressources de conformité affiche le nombre de ressources qui ont échoué. Dans l'exemple suivant, il ComplianceTypes'agit de Custom : Chef et une ressource n'est pas conforme.
Note
Custom:Chefest la ComplianceTypevaleur par défaut du AWS-ApplyChefRecipes document. Cette valeur est personnalisable.
La section Présentation détaillée des ressources contient des informations sur la AWS ressource non conforme. Cette section inclut également le type de ressource Chef sur lequel l’analyse de conformité a été exécutée, la sévérité du problème, le statut de conformité ainsi que des liens pour en savoir plus, le cas échéant.
Le lien Afficher la sortie affiche les 4 000 derniers caractères du statut détaillé. Systems Manager commence par l'exception comme premier élément, recherche les messages détaillés et les affiche jusqu'à ce qu'il atteigne le quota de 4 000 caractères. Ce processus affiche les messages de journal qui ont été générés avant que l'exception soit déclenchée, qui sont les plus pertinents pour la résolution.
Pour de plus amples informations sur la façon d'afficher les informations de conformité, consultez Conformité d'AWS Systems Manager.
Important
Si l'association State Manager échoue, aucune donnée de conformité n'est présentée. Par exemple, si Systems Manager tente de télécharger un livre de recettes Chef à partir d’un compartiment S3 auquel le nœud n’est pas autorisé à accéder, l’association échoue et aucune donnée de conformité n’est rapportée par Systems Manager.