Verknüpfungen erstellen, die ausgeführt werden Chef recipes - 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 ausgeführt werden Chef recipes

Sie können erstellen State Manager Assoziationen, die laufen Chef Rezepte unter Verwendung des AWS-ApplyChefRecipes SSM-Dokuments. State Manager ist ein Tool in AWS Systems Manager. Sie können mit dem AWS-ApplyChefRecipes SSM-Dokument eine Ausrichtung auf Linux-basierte verwaltete Systems Manager-Knoten verwenden. Dieses Dokument bietet die folgenden Vorteile beim Laufen Chef Rezepte:

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

  • Installiert automatisch die Chef Client-Software 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-Durchläufe an.

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

Du kannst Git benutzen, GitHub, HTTP - oder Amazon S3 S3-Buckets als Download-Quellen für Chef Kochbücher und Rezepte, die Sie in einem AWS-ApplyChefRecipes Dokument angeben.

Anmerkung

Assoziationen, die laufen Chef Rezepte werden auf nicht unterstützt macOS.

Erste Schritte

Bevor Sie ein AWS-ApplyChefRecipes Dokument erstellen, bereiten Sie Ihr Chef Kochbücher und Kochbuch-Repository. Wenn Sie noch keine haben Chef Ein Kochbuch, das Sie verwenden möchten, können Sie zunächst mit einem HelloWorld Testkochbuch beginnen, 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 jenkins und nginx sind Beispiele für Chef Kochbücher, die erhältlich sind in Chef Supermarketauf der Chef Webseite.

Ich AWS kann Kochbücher auf dem jedoch nicht offiziell unterstützen Chef SupermarketWebsite, viele von ihnen arbeiten 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 gültig sein für Chef Client-Version (Chef 11 bis Chef 18), die Sie verwenden.

  • Das Kochbuch ist kompatibel mit Chef Infra Clientund benötigt keinen Chef-Server.

Stellen Sie sicher, dass Sie die Chef.io-Website erreichen können, damit alle Cookbooks, die Sie in der Ausführungsliste angeben, installiert werden können, wenn das Systems-Manager-Dokument (SSM-Dokument) 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 erstellen State Manager Assoziation, die läuft Chef Rezepte, beachten Sie, dass beim Ausführen des Dokuments das installiert wird Chef Client-Software auf Ihren von Systems Manager verwalteten Knoten, es sei denn, Sie legen den Wert von fest Chef Client-Version aufNone. Dieser Vorgang verwendet ein Installationsskript von Chef zu installieren Chef Komponenten in Ihrem Namen. Bevor Sie ein AWS-ApplyChefRecipes Dokument erstellen, stellen Sie sicher, dass Ihr Unternehmen alle geltenden gesetzlichen Anforderungen erfüllt, einschließlich der Lizenzbedingungen für die Verwendung von Chef Software. Weitere Informationen finden Sie hier: Chef Webseite.

Systems Manager kann Compliance-Berichte an einen S3-Bucket oder die Systems Manager-Konsole übermitteln oder Compliance-Ergebnisse als Antwort auf Systems Manager-API-Befehle zur Verfügung stellen. 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 Instance-Profil muss über die Berechtigung zur Nutzung der Systems Manager PutComplianceItem-API verfügen. Weitere Informationen zur Systems Manager-Compliance finden Sie unter AWS Systems Manager-Compliance.

Protokollieren der Dokumentausführung

Wenn Sie ein Systems Manager Manager-Dokument (SSM-Dokument) mit einem ausführen State Manager Zuordnung, Sie können 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.

Anwenden von JSON-Attributen auf Ziele bei der Ausführung eines Rezepts

Sie können JSON-Attribute für Ihre angeben Chef Client, der während eines Zuordnungslaufs auf Zielknoten angewendet werden soll. Beim Einrichten der Zuordnung können Sie unformatiertes JSON oder den Pfad zu einer in Amazon S3 gespeicherten JSON-Datei angeben.

Verwenden Sie JSON-Attribute, wenn Sie beispielsweise die Art und Weise, wie das Rezept ausgeführt wird, anpassen möchten, ohne das Rezept selbst ändern zu müssen:

  • Überschreiben einer kleinen Anzahl von Attributen

    Verwenden Sie benutzerdefiniertes JSON, um zu vermeiden, dass Sie mehrere Versionen eines Rezepts verwalten müssen, um kleine Unterschiede zu berücksichtigen.

  • Bereitstellung variabler Werte

    Verwenden Sie benutzerdefiniertes JSON, um Werte anzugeben, die sich von ändern können run-to-run. Zum Beispiel, wenn dein Chef Cookbooks konfigurieren eine Drittanbieteranwendung, die Zahlungen akzeptiert, Sie können benutzerdefiniertes JSON verwenden, um die URL des Zahlungsendpunkts anzugeben.

Angeben von Attributen in unformatiertem JSON

Das Folgende ist ein Beispiel für das Format, das Sie verwenden können, um benutzerdefinierte JSON-Attribute für Ihr Chef Rezept.

{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Angabe eines Pfads zu einer JSON-Datei

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

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

Git als Quelle für Cookbooks verwenden

Das AWS-ApplyChefRecipes Dokument verwendet das aws:DownloadContent-Plugin zum Herunterladen Chef Rezeptbüchern beschrieben. Um Inhalte aus Git herunterzuladen, geben Sie Informationen über Ihr Git-Repository im JSON-Format an, wie im folgenden Beispiel. Ersetzen Sie jeden example-resource-placeholder durch Ihre 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 Sie GitHub als Kochbuchquelle

Das AWS-ApplyChefRecipes-Dokument verwendet das aws:downloadContent-Plugin, um Cookbooks herunterzuladen. Um Inhalte herunterzuladen von GitHub, geben Sie Informationen über Ihr GitHub Repository im JSON-Format wie im folgenden Beispiel. Ersetzen Sie jeden example-resource-placeholder durch Ihre Informationen.

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

HTTP als Quelle für Cookbooks verwenden

Sie können speichern Chef Kochbücher an einem benutzerdefinierten HTTP-Speicherort entweder als einzelne tar.gz Datei .zip oder als Verzeichnisstruktur. Um Inhalte über HTTP herunterzuladen, geben Sie den Pfad zu der Datei oder dem Verzeichnis im JSON-Format wie im folgenden Beispiel an. Ersetzen Sie jeden example-resource-placeholder durch Ihre 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 sie auch speichern und herunterladen Chef Kochbücher in Amazon S3 entweder als einzelne tar.gz Datei .zip oder als Verzeichnisstruktur. Um Inhalte von Amazon S3 herunterzuladen, geben Sie den Pfad zu der Datei im JSON-Format wie in den folgenden Beispielen an. Ersetzen Sie jeden example-resource-placeholder durch Ihre 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 Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren.

Erstellen Sie eine Zuordnung, die ausgeführt wird Chef Rezepte (Konsole)

Das folgende Verfahren beschreibt, wie Sie die Systems Manager Manager-Konsole verwenden, um ein State Manager Assoziation, die ausgeführt wird Chef Kochbücher anhand des AWS-ApplyChefRecipes Dokuments.

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

  2. Wählen Sie im Navigationsbereich State Manager.

  3. Wählen Sie aus.State Manager, und wählen Sie dann Verknüpfung erstellen 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, GitHub, HTTP oder S3.

  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. Ersetzen Sie jeden example-resource-placeholder durch Ihre Informationen.

    recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name]
  9. (Optional) Geben Sie benutzerdefinierte JSON-Attribute an, die Sie verwenden möchten Chef Client, der an Ihre Zielknoten übergeben werden soll.

    1. Fügen Sie im Inhalt der JSON-Attribute alle gewünschten Attribute hinzu Chef Client, der an Ihre Zielknoten übergeben werden soll.

    2. Fügen Sie in JSON-Attributquellen die Pfade zu allen gewünschten Attributen hinzu Chef Client, der an Ihre Zielknoten übergeben werden soll.

    Weitere Informationen finden Sie unter Anwenden von JSON-Attributen auf Ziele bei der Ausführung eines Rezepts.

  10. Für Chef Client-Version, geben Sie eine an Chef Version. 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 das nicht Chef Client auf den Zielknoten, bevor die Rezepte des Dokuments ausgeführt werden.

  11. (Optional) Für Chef Client-Argumente: Geben Sie zusätzliche Argumente an, die für die Version von unterstützt werden Chef du benutzt. Um mehr über unterstützte Argumente zu erfahren, führen Sie chef-client -h den Befehl auf einem Knoten aus, auf dem der Chef Klient.

  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 den Konfigurationen gemessen, die in Ihrem Chef Rezepte und Knotenressourcen. 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 ist Custom:Chef.

  15. Geben Sie für den Compliance-Berichts-Bucket den Namen eines S3-Buckets ein, in dem Informationen zu jedem Bucket gespeichert werden sollen Chef Ausführung, die von diesem Dokument durchgeführt wurde, einschließlich der Ressourcenkonfiguration und der Konformitätsergebnisse.

  16. Konfigurieren Sie unter Rate Control die Optionen für die Ausführung State Manager Verknüpfungen über eine Flotte verwalteter Knoten hinweg. Weitere Informationen über Ratensteuerungen finden Sie unter Grundlegendes zu Zielen und Ratenkontrollen in State Manager Verbände.

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

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

    • Wählen Sie 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 Fehler, um eine absolute Anzahl von Fehlern einzugeben, die zuvor zulässig waren State Manager beendet die Ausführung von Verknüpfungen auf zusätzlichen Zielen.

    • Wählen Sie Prozentsatz, um einen Prozentsatz der Fehler einzugeben, die zuvor zulässig waren State Manager beendet die Ausführung von Verknüpfungen auf zusätzlichen Zielen.

  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 zum Schreiben von Daten in einen S3-Bucket sind die Berechtigungen des dem verwalteten Knoten zugewiesenen Instance-Profils und nicht diejenigen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter Instance-Berechtigungen für Systems Manager konfigurieren oder Eine IAM-Servicerolle für eine Hybrid-Umgebung erstellen. Wenn sich der angegebene S3-Bucket in einem anderen befindet, stellen Sie außerdem sicher AWS-Konto, dass das Instanzprofil oder die IAM-Dienstrolle, die dem verwalteten Knoten zugeordnet sind, über die erforderlichen Berechtigungen verfügt, um in diesen Bucket zu schreiben.

  18. Wählen Sie Zuordnung erstellen.

Erstellen Sie eine Zuordnung, die ausgeführt wird Chef Rezepte (CLI)

Das folgende Verfahren beschreibt, wie Sie mit AWS Command Line Interface (AWS CLI) eine erstellen State Manager Assoziation, die Chef-Kochbücher mithilfe des AWS-ApplyChefRecipes Dokuments 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 Zuordnung zu erstellen, die ausgeführt wird Chef Kochbücher auf Zielknoten, die die angegebenen Tags haben. Verwenden Sie den Befehl, der für Ihren Quellentyp des Cookbooks und Ihr Betriebssystem geeignet ist. Ersetzen Sie jeden example-resource-placeholder durch Ihre 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 source

      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. HTTP-Quelle

      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 Assoziationen 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. Sie suchen nach Informationen über Chef Ressourcenausfälle in einem S3-Bucket können 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 zuletzt erstellt oder eingecheckt wurden. Chef ausführen. Die Ressourcen können unter anderem Dateien, Verzeichnisse, systemd-Services, yum-Pakete, Vorlagendateien, gem-Pakete und abhängige Cookbooks umfassen.

Der Bereich Compliance-Ressourcen-Zusammenfassung zeigt die Anzahl der Ressourcen an, die fehlgeschlagen sind. Im folgenden Beispiel ComplianceTypeist das Custom:Chefund eine Ressource ist nicht konform.

Anmerkung

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

Anzeigen der Anzahl im Bereich 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 Chef Ressourcentyp, für den die Konformität ausgeführt wurde, Schweregrad des Problems, Konformitätsstatus und gegebenenfalls Links zu weiteren Informationen.

Konformitätsdetails für ein anzeigen Chef verwalteter Ressourcenausfall

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 das Symbol State Manager Die Zuordnung schlägt fehl, es werden keine Compliance-Daten gemeldet. Wenn Systems Manager beispielsweise versucht, einen herunterzuladen Chef Kochbuch aus einem S3-Bucket, auf das der Knoten keine Zugriffsberechtigung hat, die Zuordnung schlägt fehl und Systems Manager meldet keine Compliance-Daten.