Verknüpfungen erstellen, die Chef Rezepte ausführen - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verknüpfungen erstellen, die Chef Rezepte ausführen

Mithilfe des AWS-ApplyChefRecipes SSM Dokuments können Sie State Manager Verknüpfungen erstellen, die Chef Rezepte ausführen. State Managerist eine Fähigkeit von AWS Systems Manager. Sie können das AWS-ApplyChefRecipes SSM Dokument als Ziel für verwaltete Linux-basierte Systems Manager-Knoten verwenden. Dieses Dokument bietet die folgenden Vorteile beim Ausführen von Chef Rezepten:

  • Unterstützt mehrere Versionen von Chef (Chef11 bis Chef 18).

  • Installiert die Chef Client-Software automatisch auf den Zielknoten.

  • Führt optional Systems Manager-Compliance-Prüfungen für Ziel-Knoten aus und speichert die Ergebnisse der Compliance-Prüfungen in einem Amazon Simple Storage Service (Amazon S3)-Bucket.

  • Führt mehrere Cookbooks und Rezepte in einem einzigen Durchlauf des Dokuments aus.

  • Führt optional Rezepte im why-run-Modus aus, um anzuzeigen, welche Rezepte sich auf Ziel-Knoten ändern, ohne Änderungen vorzunehmen.

  • Wendet optional benutzerdefinierte JSON Attribute auf chef-client Läufe an.

  • Wendet optional benutzerdefinierte JSON Attribute aus einer Quelldatei an, die an einem von Ihnen angegebenen Speicherort gespeichert ist.

Sie können Git -, GitHubHTTP, oder Amazon S3 S3-Buckets als Download-Quellen für Chef Kochbücher und Rezepte verwenden, die Sie in einem AWS-ApplyChefRecipes Dokument angeben.

Anmerkung

Verknüpfungen, die Chef Rezepte ausführen, werden auf nicht unterstützt. macOS

Erste Schritte

Bevor Sie ein AWS-ApplyChefRecipes Dokument erstellen, bereiten Sie Ihre Chef Kochbücher und Ihr Kochbuch-Repository vor. Wenn Sie noch kein Chef Kochbuch haben, das Sie verwenden möchten, können Sie zunächst ein HelloWorld Testkochbuch verwenden, das für Sie vorbereitet AWS wurde. Das AWS-ApplyChefRecipes-Dokument verweist bereits standardmäßig auf dieses Cookbook. Ihre Cookbooks sollten ähnlich wie die folgende Verzeichnisstruktur eingerichtet werden. Im folgenden Beispiel finden Sie Beispiele für Chef Kochbücher, die Chef Supermarketauf der Website verfügbar sind. jenkins nginx Chef

Kochbücher auf der Chef SupermarketWebsite AWS können zwar nicht offiziell unterstützt werden, aber viele von ihnen funktionieren mit dem AWS-ApplyChefRecipes Dokument. Im Folgenden finden Sie Beispiele für Kriterien, die Sie bestimmen müssen, wenn Sie ein Community-Cookbook testen:

  • Das Cookbook sollte die Linux-basierten Betriebssysteme der Systems Manager-verwalteten Knoten unterstützen, auf die Sie zielen.

  • Das Kochbuch sollte für die von Ihnen verwendete Chef Client-Version (Chef11 bis Chef 18) gültig sein.

  • Das Kochbuch ist mit einem Chef Infra Client Chef-Server kompatibel und benötigt keinen.

Stellen Sie sicher, dass Sie die Chef.io Website erreichen können, sodass alle Kochbücher, die Sie in Ihrer Ausführungsliste angeben, installiert werden können, wenn das Systems Manager Manager-Dokument (SSMDokument) ausgeführt wird. Die Verwendung eines eingebetteten cookbooks-Ordners wird zwar unterstützt, ist aber nicht erforderlich. Sie können Cookbooks direkt unter der Root-Ebene speichern.

<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
Wichtig

Bevor Sie eine State Manager Zuordnung erstellen, die Chef Rezepte ausführt, sollten Sie sich bewusst sein, dass beim Ausführen des Dokuments die Chef Clientsoftware auf Ihren von Systems Manager verwalteten Knoten installiert wird, es sei denn, Sie setzen den Wert der ChefClientversion aufNone. Bei diesem Vorgang wird ein Installationsskript von verwendetChef, um Chef Komponenten in Ihrem Namen zu installieren. Bevor Sie ein AWS-ApplyChefRecipes Dokument ausführen, stellen Sie sicher, dass Ihr Unternehmen alle geltenden gesetzlichen Anforderungen, einschließlich der Lizenzbedingungen für die Verwendung von Chef Software, erfüllt. Weitere Informationen finden Sie Chefauf der Website.

Systems Manager kann Konformitätsberichte an einen S3-Bucket oder die Systems Manager Manager-Konsole senden oder Konformitätsergebnisse als Reaktion auf Systems Manager API Manager-Befehle verfügbar machen. Zum Ausführen von Systems Manager-Compliance-Berichten muss das Instance-Profil, das an Systems Manager-verwaltete Knoten angefügt ist, über Berechtigungen zum Schreiben in den S3-Bucket verfügen. Das Instanzprofil muss über Berechtigungen zur Verwendung des Systems Manager verfügen PutComplianceItemAPI. Weitere Informationen zur Systems Manager-Compliance finden Sie unter AWS Systems Manager-Compliance.

Protokollieren der Dokumentausführung

Wenn Sie ein Systems Manager Manager-Dokument (SSMDokument) mithilfe einer State Manager Zuordnung ausführen, können Sie die Zuordnung so konfigurieren, dass die Ausgabe des Dokumentenlaufs ausgewählt wird, und Sie können die Ausgabe an Amazon S3 oder Amazon CloudWatch Logs (CloudWatch Logs) senden. Um die Problembehebung zu vereinfachen, wenn die Ausführung einer Zuordnung abgeschlossen ist, stellen Sie sicher, dass die Zuordnung so konfiguriert ist, dass die Befehlsausgabe entweder in einen Amazon S3 S3-Bucket oder in CloudWatch Logs geschrieben wird. Weitere Informationen finden Sie unter Arbeiten mit Zuordnungen in Systems Manager.

Beim Ausführen eines Rezepts JSON Attribute auf Ziele anwenden

Sie können JSON Attribute angeben, die Ihr Chef Client während eines Zuordnungslaufs auf Zielknoten anwenden soll. Bei der Einrichtung der Zuordnung können Sie Rohdaten JSON oder den Pfad zu einer in Amazon S3 gespeicherten JSON Datei angeben.

Verwenden Sie JSON Attribute, wenn Sie anpassen möchten, wie das Rezept ausgeführt wird, ohne das Rezept selbst ändern zu müssen, zum Beispiel:

  • Überschreiben einer kleinen Anzahl von Attributen

    Verwenden Sie benutzerdefiniertJSON, um zu vermeiden, dass Sie mehrere Versionen eines Rezepts verwalten müssen, um kleinere Unterschiede zu berücksichtigen.

  • Bereitstellung variabler Werte

    Verwenden Sie benutzerdefiniertJSON, um Werte anzugeben, die sich von ändern können run-to-run. Wenn Ihre Chef Kochbücher beispielsweise eine Drittanbieteranwendung konfigurieren, die Zahlungen akzeptiert, können Sie benutzerdefiniert verwenden, JSON um den Zahlungsendpunkt URL anzugeben.

Attribute im Rohformat angeben JSON

Im Folgenden finden Sie ein Beispiel für das Format, das Sie verwenden können, um benutzerdefinierte JSON Attribute für Ihr Chef Rezept anzugeben.

{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Einen Pfad zu einer JSON Datei angeben

Im Folgenden finden Sie ein Beispiel für das Format, mit dem Sie den Pfad zu benutzerdefinierten JSON Attributen für Ihr Chef Rezept angeben können.

{"sourceType":"s3", "sourceInfo":"someS3URL1"}, {"sourceType":"s3", "sourceInfo":"someS3URL2"}

Git als Quelle für Cookbooks verwenden

Das AWS-ApplyChefRecipes Dokument verwendet das downloadContentaws:-Plugin zum Herunterladen von Chef Kochbüchern. Um Inhalte von Git herunterzuladen, geben Sie Informationen zu Ihrem Git-Repository im JSON Format wie im folgenden Beispiel an. Ersetze jedes example-resource-placeholder mit Ihren eigenen Informationen.

{ "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}}" }

Verwenden von GitHub als Quelle für Cookbooks

Das AWS-ApplyChefRecipes Dokument verwendet das aws: downloadContent -Plugin zum Herunterladen von Kochbüchern. Um Inhalte herunterzuladenGitHub, geben Sie Informationen zu Ihrem GitHub Repository im JSON Format wie im folgenden Beispiel an. Ersetze jedes example-resource-placeholder mit Ihren eigenen Informationen.

{ "owner":"TestUser", "repository":"GitHubCookbookRepository", "path":"cookbooks/HelloWorld", "getOptions":"branch:refs/head/main", "tokenInfo":"{{ssm-secure:token-secure-string-parameter}}" }

Verwenden von HTTP als Quelle für Cookbooks

Sie können Chef Kochbücher an einem benutzerdefinierten HTTP Speicherort entweder als einzelne tar.gz Datei .zip oder als Verzeichnisstruktur speichern. Um Inhalte herunterzuladenHTTP, geben Sie den Pfad zur Datei oder zum Verzeichnis im JSON Format wie im folgenden Beispiel an. Ersetzen Sie jedes example-resource-placeholder mit Ihren eigenen Informationen.

{ "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}}" }

Verwenden von Amazon S3 als Quelle für Cookbooks

Sie können Chef Kochbücher auch in Amazon S3 entweder als einzelne tar.gz Datei .zip oder als Verzeichnisstruktur speichern und herunterladen. Um Inhalte von Amazon S3 herunterzuladen, geben Sie den Pfad zur Datei im JSON Format wie in den folgenden Beispielen an. Ersetzen Sie jedes example-resource-placeholder mit Ihren eigenen Informationen.

Beispiel 1: Herunterladen eines bestimmten Cookbooks

{ "path":"https://s3.amazonaws.com/chef-cookbooks/HelloWorld.zip" }

Beispiel 2: Herunterladen des Inhalts eines Verzeichnisses

{ "path":"https://s3.amazonaws.com/chef-cookbooks-test/HelloWorld" }
Wichtig

Wenn Sie Amazon S3 angeben, muss das Instance-Profil AWS Identity and Access Management (IAM) auf Ihren verwalteten Knoten mit der AmazonS3ReadOnlyAccess Richtlinie konfiguriert werden. Weitere Informationen finden Sie unter Konfigurieren der für Systems Manager erforderlichen Instanzberechtigungen.

Erstellen Sie eine Assoziation, die Chef Rezepte ausführt (Konsole)

Das folgende Verfahren beschreibt, wie Sie mit der Systems Manager Manager-Konsole eine State Manager Assoziation erstellen, die Chef Kochbücher mithilfe des AWS-ApplyChefRecipes Dokuments ausführt.

  1. Öffnen Sie die AWS Systems Manager Konsole unter. https://console.aws.amazon.com/systems-manager/

  2. Wählen Sie im Navigationsbereich State Manager aus.

  3. Wählen Sie State Manager und dann Create association (Zuordnung wählen) aus.

  4. Geben Sie unter Name einen Namen ein, der Ihnen hilft, sich an den Zweck der Zuordnung zu erinnern.

  5. Wählen Sie in der Liste Dokument die Option AWS-ApplyChefRecipes aus.

  6. Wählen Sie unter Parameter für Quelltyp entweder Git, GitHubHTTP, oder S3 aus.

  7. Geben Sie unter Quelleninfo die Informationen zur Cookbook-Quelle in dem Format ein, das dem in Schritt 6 ausgewählten Quellentyp entspricht. Weitere Informationen finden Sie unter den folgenden Themen:

  8. Listen Sie in der Run list (Ausführungsliste) die auszuführenden Rezepte im folgenden Format auf. Trennen Sie jedes Rezept durch ein Komma wie gezeigt. Geben Sie kein Leerzeichen nach dem Komma ein. Ersetze jeden example-resource-placeholder mit Ihren eigenen Informationen.

    recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name]
  9. (Optional) Geben Sie benutzerdefinierte JSON Attribute an, die der Chef Client an Ihre Zielknoten weitergeben soll.

    1. Fügen Sie im JSONAttributinhalt alle Attribute hinzu, die der Chef Client an Ihre Zielknoten weitergeben soll.

    2. Fügen Sie unter JSON Attributquellen die Pfade zu allen Attributen hinzu, die der Chef Client an Ihre Zielknoten weitergeben soll.

    Weitere Informationen finden Sie unter Beim Ausführen eines Rezepts JSON Attribute auf Ziele anwenden.

  10. Geben Sie für die ChefClient-Version eine Chef Version an. Gültige Werte sind 11 bis 18 oder None. Wenn Sie eine Zahl zwischen 11 18 (einschließlich) angeben, installiert Systems Manager die richtige Chef Client-Version auf Ihren Zielknoten. Wenn Sie angebenNone, installiert Systems Manager den Chef Client nicht auf den Zielknoten, bevor die Rezepte des Dokuments ausgeführt werden.

  11. (Optional) Geben Sie für ChefClient-Argumente zusätzliche Argumente an, die für die Version von, die Chef Sie verwenden, unterstützt werden. Um mehr über unterstützte Argumente zu erfahren, führen Sie die Ausführung chef-client -h auf einem Knoten aus, auf dem der Chef Client ausgeführt wird.

  12. (Optional) Aktivieren Sie Why-run, um Änderungen anzuzeigen, die bei der Ausführung der Rezepte an Ziel-Knoten vorgenommen wurden, ohne dass die Ziel-Knoten tatsächlich geändert werden.

  13. Wählen Sie für Compliance severity (Schweregrad der Compliance) den Schweregrad der Systems Manager-Compliance-Ergebnisse aus, die gemeldet werden sollen. In den Compliance-Berichten finden Sie Informationen dazu, ob die Zuordnung konform ist, zusammen mit dem festgelegten Schweregrad. Compliance-Berichte werden in einem S3-Bucket gespeichert, den Sie als Wert des Parameters Compliance report bucket (Compliance-Berichts-Bucket) angeben (Schritt 14). Weitere Informationen zur Compliance finden Sie unter Erfahren Sie mehr über Compliance in dieser Anleitung.

    Bei Konformitätsscans wird die Abweichung zwischen der Konfiguration, die in Ihren Chef Rezepten angegeben ist, und den Knotenressourcen gemessen. Gültige Werte sind Critical, High, Medium, Low, Informational, Unspecified oder None. Um die Compliance-Berichterstattung zu überspringen, wählen Sie None.

  14. Geben Sie unter Compliance type (Compliance-Typ) den Compliance-Typ an, für den die Ergebnisse gemeldet werden sollen. Gültige Werte sind Association für State Manager Assoziationen oder Custom:custom-type. Der Standardwert istCustom:Chef.

  15. Geben Sie für den Bucket Compliance-Bericht den Namen eines S3-Buckets ein, in dem Informationen zu jeder Chef Ausführung dieses Dokuments gespeichert werden sollen, einschließlich der Ressourcenkonfiguration und der Konformitätsergebnisse.

  16. Konfigurieren Sie in Rate control (Ratensteuerung) Optionen für die Ausführung von State Manager-Zuordnungen in der Flotte von verwalteten Knoten. Weitere Informationen über Ratensteuerungen finden Sie unter Ziele und Tarifkontrollen in State Manager Verbänden verstehen.

    Wählen Sie unter Concurrency (Gleichzeitigkeit) eine Option aus:

    • Wählen Sie Targets (Ziele) aus, um eine absolute Anzahl von Zielen einzugeben, die die Zuordnung gleichzeitig ausführen können.

    • Wählen Sie Percentage (Prozentsatz) aus, um einen Prozentsatz der Ziele anzugeben, die die Zuordnung gleichzeitig ausführen können.

    Wählen Sie unter Error threshold (Fehlerschwelle) eine Option aus:

    • Wählen Sie Errors (Fehler) aus und geben Sie die absolute Anzahl erlaubter Fehler an, bis State Manager die Ausführung von Zuordnungen für weitere Ziele beendet.

    • Wählen Sie Percentage (Prozentsatz) aus und geben Sie den Prozentsatz erlaubter Fehler an, bis State Manager die Ausführung von Zuordnungen für weitere Ziele beendet.

  17. (Optional) Wenn Sie im Abschnitt Ausgabeoptionen die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen Schreiben der Ausgabe in S3 aktivieren. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.

    Anmerkung

    Die S3-Berechtigungen, die das Schreiben der Daten in einen S3-Bucket ermöglichen, entsprechen denen des Instanzprofils, das dem verwalteten Knoten zugewiesen ist, und nicht denen des IAM Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter Konfigurieren der für Systems Manager erforderlichen Instanzberechtigungen oder Erstellen einer IAM Servicerolle für eine Hybridumgebung. Wenn sich der angegebene S3-Bucket in einem anderen befindet, stellen Sie außerdem sicher AWS-Konto, dass das dem verwalteten Knoten zugeordnete Instanzprofil oder die IAM Servicerolle über die erforderlichen Berechtigungen verfügt, um in diesen Bucket zu schreiben.

  18. Wählen Sie Create Association.

Erstellen Sie eine Assoziation, die Chef recipes (CLI) ausführt

Das folgende Verfahren beschreibt, wie Sie mit AWS Command Line Interface (AWS CLI) mithilfe des AWS-ApplyChefRecipes Dokuments eine State Manager Assoziation erstellen, die Chef-Kochbücher ausführt.

  1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

    Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI.

  2. Führen Sie einen der folgenden Befehle aus, um eine Assoziation zu erstellen, die Chef Kochbücher auf Zielknoten mit den angegebenen Tags ausführt. Verwenden Sie den Befehl, der für Ihren Quellentyp des Cookbooks und Ihr Betriebssystem geeignet ist. Ersetzen Sie jedes example-resource-placeholder mit Ihren eigenen Informationen.

    1. Git-Quelle

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["Git"],"SourceInfo":["{\"repository\":\"repository-name\", \"getOptions\": \"branch:branch-name\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["Git"],"SourceInfo":["{\"repository\":\"repository-name\", \"getOptions\": \"branch:branch-name\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' ^ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"

    2. GitHub Quelle

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner-name\", \"repository\": \"name\", \"path\": \"path-to-directory-or-cookbook-to-download\", \"getOptions\": \"branch:branch-name\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner-name\", \"repository\": \"name\", \"path\": \"path-to-directory-or-cookbook-to-download\", \"getOptions\": \"branch:branch-name\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' ^ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"

      Ein Beispiel.

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:OS,Values=Linux \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"ChefRecipeTest\", \"repository\": \"ChefCookbooks\", \"path\": \"cookbooks/HelloWorld\", \"getOptions\": \"branch:master\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' \ --association-name "MyChefAssociation" \ --schedule-expression "cron(0 2 ? * SUN *)"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:OS,Values=Linux ^ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"ChefRecipeTest\", \"repository\": \"ChefCookbooks\", \"path\": \"cookbooks/HelloWorld\", \"getOptions\": \"branch:master\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' ^ --association-name "MyChefAssociation" ^ --schedule-expression "cron(0 2 ? * SUN *)"
    3. HTTPQuelle

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["HTTP"],"SourceInfo":["{\"url\":\"url-to-zip-file|directory|cookbook\", \"authMethod\": \"auth-method\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["HTTP"],"SourceInfo":["{\"url\":\"url-to-zip-file|directory|cookbook\", \"authMethod\": \"auth-method\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"
    4. Amazon-S3-Quelle

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_cookbook_to_download\"}"], "RunList":["{\"recipe[cookbook_name1::recipe_name]\", \"recipe[cookbook_name2::recipe_name]\"}"], "JsonAttributesContent": ["{Custom_JSON}"], "ChefClientVersion": ["version_number"], "ChefClientArguments":["{chef_client_arguments}"], "WhyRun": true_or_false, "ComplianceSeverity": ["severity_value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["amzn-s3-demo-bucket"]}' \ --association-name "name" \ --schedule-expression "cron_or_rate_expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_cookbook_to_download\"}"], "RunList":["{\"recipe[cookbook_name1::recipe_name]\", \"recipe[cookbook_name2::recipe_name]\"}"], "JsonAttributesContent": ["{Custom_JSON}"], "ChefClientVersion": ["version_number"], "ChefClientArguments":["{chef_client_arguments}"], "WhyRun": true_or_false, "ComplianceSeverity": ["severity_value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["amzn-s3-demo-bucket"]}' ^ --association-name "name" ^ --schedule-expression "cron_or_rate_expression"

      Ein Beispiel.

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets "Key=tag:OS,Values= Linux" \ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/amzn-s3-demo-bucket/HelloWorld\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' \ --association-name "name" \ --schedule-expression "cron(0 2 ? * SUN *)"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets "Key=tag:OS,Values= Linux" ^ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/amzn-s3-demo-bucket/HelloWorld\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' ^ --association-name "name" ^ --schedule-expression "cron(0 2 ? * SUN *)"

      Das System erstellt die Zuordnung und führt die Zuordnung auf den Zielknoten aus, es sei denn, Ihr angegebener cron- oder rate-Ausdruck verhindert dies.

      Anmerkung

      State Manager-Zuordnungen unterstützen nicht alle Cron- und Rate-Ausdrücke. Weitere Informationen zum Erstellen von Cron- und Rate-Ausdrücken für Zuordnungen finden Sie unter Referenz: Cron- und Rate-Ausdrücke für System Manager.

  3. Führen Sie den folgenden Befehl aus, um den Status der Zuordnung, die Sie gerade erstellt haben, anzuzeigen.

    aws ssm describe-association --association-id "ID"

Anzeigen von Details zur Chef-Ressourcen-Compliance

Systems Manager erfasst Compliance-Informationen über Chef verwaltete Ressourcen im Bucketwert des Amazon S3 S3-Compliance-Berichts, den Sie bei der Ausführung des AWS-ApplyChefRecipes Dokuments angegeben haben. Die Suche nach Informationen über Chef Ressourcenausfälle in einem S3-Bucket kann zeitaufwändig sein. Stattdessen können Sie diese Informationen auf der Systems Manager-Seite Compliance anzeigen.

Ein Systems Manager Manager-Konformitätsscan sammelt Informationen über Ressourcen auf Ihren verwalteten Knoten, die bei der letzten Chef Ausführung erstellt oder überprüft wurden. Die Ressourcen können unter anderem Dateien, Verzeichnisse, systemd-Services, yum-Pakete, Vorlagendateien, gem-Pakete und abhängige Cookbooks umfassen.

Der Bereich Compliance resources summary (Compliance-Ressourcen-Zusammenfassung) zeigt die Anzahl der Ressourcen an, die fehlgeschlagen sind. Im folgenden Beispiel ComplianceTypelautet Custom: Chef und eine Ressource ist nicht konform.

Anmerkung

Custom:Chefist der ComplianceTypeStandardwert im AWS-ApplyChefRecipes Dokument. Dieser Wert ist anpassbar.

Anzeigen der Anzahl im Bereich Compliance resources summary (Compliance-Ressourcen-Zusammenfassung) der Seite Compliance.

Der Abschnitt „Detailübersicht für Ressourcen“ enthält Informationen über die AWS Ressource, die nicht richtlinientreu ist. Dieser Abschnitt enthält auch den Chef Ressourcentyp, für den die Konformität ausgeführt wurde, den Schweregrad des Problems, den Konformitätsstatus und gegebenenfalls Links zu weiteren Informationen.

Konformitätsdetails für einen Ausfall einer Chef verwalteten Ressource anzeigen

View output zeigt die letzten 4.000 Zeichen des detaillierten Status an. Systems Manager beginnt mit der Ausnahme als erstem Element, sucht nach ausführlichen Meldungen und zeigt diese an, bis das Kontingent von 4.000 Zeichen erreicht ist. Dieser Vorgang zeigt die Protokollmeldungen an, die vor dem Auslösen der Ausnahme ausgegeben wurden. Dabei handelt es sich um die relevantesten Nachrichten für die Fehlerbehebung.

Weitere Informationen zum Anzeigen von Compliance-Informationen finden Sie unter AWS Systems Manager-Compliance.

Wichtig

Wenn die State Manager-Zuordnung fehlschlägt, werden keine Compliance-Daten gemeldet. Wenn Systems Manager beispielsweise versucht, ein Chef Kochbuch aus einem S3-Bucket herunterzuladen, für den der Knoten keine Zugriffsberechtigung hat, schlägt die Zuordnung fehl und Systems Manager meldet keine Compliance-Daten.