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 s'exécutent Chef recipes
Vous pouvez créer State Manager associations qui gèrent Chef recettes en utilisant le AWS-ApplyChefRecipes
SSM document. State Manager est une capacité de AWS Systems Manager. Vous pouvez cibler les nœuds gérés par Systems Manager basés sur Linux avec le document. AWS-ApplyChefRecipes
SSM Ce document offre les avantages suivants pour la course à pied Chef recettes :
-
Supporte plusieurs versions de Chef (Chef 11 à Chef 18).
-
Installe automatiquement Chef logiciel client 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. -
Applique éventuellement des JSON attributs personnalisés aux
chef-client
exécutions. -
Applique éventuellement des JSON attributs personnalisés à partir d'un fichier source stocké à l'emplacement que vous spécifiez.
Vous pouvez utiliser Git, GitHubHTTP, ou des compartiments Amazon S3 comme sources de téléchargement pour Chef livres de recettes et recettes que vous spécifiez dans un AWS-ApplyChefRecipes
document.
Note
Associations qui gèrent Chef les recettes ne sont pas prises en charge sur macOS.
Premiers pas
Avant de créer un AWS-ApplyChefRecipes
document, préparez votre Chef livres de recettes et référentiel de livres de recettes. Si vous n'avez pas encore de Chef livre de recettes que vous souhaitez utiliser, vous pouvez commencer en utilisant 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
voici des exemples de Chef livres de cuisine disponibles dans le Chef Supermarket
Bien que je ne AWS puisse pas officiellement soutenir les livres de cuisine sur 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 Chef version du client (Chef 11 à Chef 18) que vous utilisez.
-
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 Chef.io
site Web 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 (SSMdocument). 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 un State Manager association qui gère Chef recettes, sachez que le document exécuté installe le Chef logiciel client sur vos nœuds gérés par Systems Manager, sauf si vous définissez la valeur de Chef version client pourNone
. Cette opération utilise un script d'installation de Chef pour installer Chef composants en votre nom. Avant de publier un AWS-ApplyChefRecipes
document, assurez-vous que votre entreprise est en mesure de respecter toutes les exigences légales applicables, y compris les conditions de licence applicables à l'utilisation de Chef logiciel. Pour de plus amples informations, veuillez consulter le .Chef site Web
Systems Manager peut envoyer des rapports de conformité à un compartiment S3, à la console Systems Manager, ou rendre les résultats de conformité disponibles en réponse aux API commandes de 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 disposer des autorisations nécessaires pour utiliser le Systems Manager PutComplianceItem
API. 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 (SSMdocument) à l'aide d'un 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 JSON des attributs aux cibles lors de l'exécution d'une recette
Vous pouvez définir JSON des attributs pour votre Chef client à appliquer aux nœuds cibles lors d'une exécution d'association. Lors de la configuration de l'association, vous pouvez fournir des données brutes JSON ou le chemin d'accès à un JSON fichier stocké dans Amazon S3.
Utilisez JSON des attributs 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 la personnalisation pour éviter d'avoir à gérer plusieurs versions d'une recette pour tenir compte de différences mineures.
-
Fournir des valeurs variables
Utilisez le paramètre personnalisé JSON pour spécifier des valeurs susceptibles de changer par rapport à run-to-run. Par exemple, si votre Chef les livres de cuisine configurent une application tierce qui accepte les paiements. Vous pouvez utiliser Custom JSON pour spécifier le point de terminaison URL de paiement.
Spécification des attributs en mode brut JSON
Voici un exemple du format que vous pouvez utiliser pour spécifier des JSON attributs personnalisés pour votre Chef recette.
{"filepath":"
/tmp/example.txt
", "content":"Hello, World!
"}
Spécification d'un chemin d'accès à un JSON fichier
Voici un exemple du format que vous pouvez utiliser pour spécifier le chemin d'accès aux JSON attributs personnalisés pour votre Chef recette.
{"sourceType":"s3", "sourceInfo":"
someS3URL1
"}, {"sourceType":"s3", "sourceInfo":"someS3URL2
"}
Utiliser Git comme source de livre de recettes
Le AWS-ApplyChefRecipes
document utilise le downloadContent plugin aws : pour le télécharger Chef livres de cuisine. Pour télécharger du contenu depuis Git, spécifiez les informations relatives à votre dépôt Git JSON au format indiqué dans l'exemple suivant. Remplacez chacun example-resource-placeholder
avec 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 cuisine
Le AWS-ApplyChefRecipes
document utilise le downloadContent plugin aws : pour télécharger des livres de recettes. Pour télécharger du contenu depuis GitHub, spécifiez les informations concernant votre GitHub référentiel au JSON format comme dans l'exemple suivant. Remplacez chacun example-resource-placeholder
avec 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 Chef livres de recettes à un HTTP emplacement personnalisé sous forme de fichier unique, de tar.gz
fichier .zip
ou de structure de répertoire. Pour télécharger du contenu depuisHTTP, spécifiez le chemin d'accès au fichier ou au répertoire JSON au format indiqué dans l'exemple suivant. Remplacez chacun example-resource-placeholder
avec 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 Chef livres de recettes dans Amazon S3 sous forme de fichier unique, de tar.gz
fichier .zip
ou de structure de répertoire. Pour télécharger du contenu depuis Amazon S3, spécifiez le chemin d'accès au fichier JSON au format indiqué dans les exemples suivants. Remplacez chacun example-resource-placeholder
avec 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é conformément à la AmazonS3ReadOnlyAccess
politique. Pour plus d'informations, consultez Configurer les autorisations d'instance requises pour Systems Manager.
Créez une association qui s'exécute Chef recettes (console)
La procédure suivante décrit comment utiliser la console Systems Manager pour créer un State Manager association qui gère Chef livres de recettes en utilisant le AWS-ApplyChefRecipes
document.
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le volet de navigation, choisissez State Manager.
-
Choisissez State Manager, puis choisissez 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 soit Git, GitHubHTTP, 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 chacun
example-resource-placeholder
avec vos propres informations.recipe[
cookbook-name1
::recipe-name
],recipe[cookbook-name2
::recipe-name
] -
(Facultatif) Spécifiez JSON les attributs personnalisés que vous souhaitez Chef client à transmettre à vos nœuds cibles.
-
Dans le contenu des JSON attributs, ajoutez tous les attributs que vous souhaitez Chef client à transmettre à vos nœuds cibles.
-
Dans JSONles sources d'attributs, ajoutez les chemins d'accès aux attributs que vous souhaitez Chef client à transmettre à vos nœuds cibles.
Pour de plus amples informations, veuillez consulter Appliquer JSON des attributs aux cibles lors de l'exécution d'une recette.
-
-
Pour Chef version du client, spécifiez un Chef version. Les valeurs valides vont de
11
à18
ouNone
. Si vous spécifiez un nombre compris entre11
18
(inclus), Systems Manager installe le bon Chef version du client sur vos nœuds cibles. Si vous le spécifiezNone
, Systems Manager n'installe pas Chef client sur les nœuds cibles avant d'exécuter les recettes du document. -
(Facultatif) Pour Chef arguments client, spécifiez les arguments supplémentaires pris en charge pour la version de Chef tu utilises. Pour en savoir plus sur les arguments pris en charge, exécutez
chef-client -h
sur un nœud qui exécute Chef client. -
(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 scans de conformité mesurent la dérive entre les configurations spécifiées dans votre Chef recettes et ressources sur les nœuds. Les valeurs valables sont
Critical
,High
,Medium
,Low
Informational
Unspecified
ouNone
. 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 sont
Association
pour State Manager des associations, ouCustom:
custom-type
. La valeur par défaut estCustom:Chef
. -
Pour le compartiment de rapports de conformité, entrez le nom d'un compartiment S3 dans lequel vous souhaitez stocker les informations relatives à chaque Chef exécution effectuée par ce document, y compris la configuration des ressources et les résultats de conformité.
-
Dans Contrôle du débit, configurez les options à exécuter State Manager associations au sein d'un parc de nœuds gérés. Pour plus d'informations sur l'utilisation des contrôles de débit, consultez Comprendre les objectifs et les contrôles de taux dans State Manager associations.
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 :
-
Choisissez les erreurs pour saisir le nombre absolu d'erreurs autorisées auparavant State Manager arrête de lancer des associations sur des cibles supplémentaires.
-
Choisissez un pourcentage pour saisir un pourcentage d'erreurs autorisées auparavant State Manager arrête de lancer 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 permettent 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'IAMutilisateur effectuant cette tâche. Pour plus d'informations, consultez Configurer les autorisations d'instance requises pour Systems Manager ou Créer un rôle de IAM service pour un environnement hybride. En outre, si le compartiment S3 spécifié se trouve dans un autre compartiment Compte AWS, vérifiez que le profil d'instance ou le rôle de IAM service 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éez une association qui s'exécute Chef recettes (CLI)
La procédure suivante décrit comment utiliser le AWS Command Line Interface (AWS CLI) pour créer un State Manager association qui gère les livres de cuisine Chef en utilisant le 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 s'exécute Chef livres de recettes sur les nœuds cibles dotés 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 chacun
example-resource-placeholder
avec vos propres informations.-
Source Git
-
GitHub source
Voici un exemple.
-
HTTPsource
-
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
State Manager les associations ne supportent pas 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é concernant Chef-ressources gérées dans la valeur du compartiment du rapport de conformité Amazon S3 que vous avez spécifiée lors de l'exécution du AWS-ApplyChefRecipes
document. Recherche d'informations sur Chef les défaillances de ressources dans un compartiment S3 peuvent prendre beaucoup de temps. Au lieu de cela, vous pouvez consulter ces informations sur la page Compliance (Conformité) de Systems Manager.
Une analyse de conformité de 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 Chef courir. 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 :Chefet une ressource n'est pas conforme.
Note
Custom:Chef
est 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 qui n'est pas conforme. Cette section inclut également Chef type de ressource par rapport auquel la conformité a été exécutée, gravité du problème, état de conformité et liens vers des informations supplémentaires, 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'icône State Manager l'association échoue, aucune donnée de conformité n'est signalée. Par exemple, si Systems Manager tente de télécharger un Chef livre de recettes provenant d'un compartiment S3 auquel le nœud n'est pas autorisé à accéder, l'association échoue et Systems Manager ne fournit aucune donnée de conformité.