Creazione di associazioni che vengono eseguite Chef recipes - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di associazioni che vengono eseguite Chef recipes

Puoi creare State Manager associazioni che funzionano Chef ricette utilizzando il AWS-ApplyChefRecipes SSM documento. State Manager è una capacità di AWS Systems Manager. È possibile indirizzare i nodi gestiti di Systems Manager basati su Linux con il documento. AWS-ApplyChefRecipes SSM Questo documento offre i seguenti vantaggi per l'esecuzione Chef ricette:

  • Supporta più versioni di Chef (Chef Da 11 a Chef 18).

  • Installa automaticamente Chef software client sui nodi di destinazione.

  • Facoltativamente esegue controlli di conformità Systems Manager su nodi di destinazione e memorizza i risultati dei controlli di conformità in un bucket Amazon Simple Storage Service (Amazon S3).

  • Esegue più cookbook e ricette in un'unica esecuzione del documento.

  • Facoltativamente esegue le ricette in modalità why-run, per mostrare quali ricette cambieranno nei nodi di destinazione senza apportare modifiche.

  • Applica facoltativamente JSON attributi personalizzati alle chef-client esecuzioni.

  • Facoltativamente, applica JSON gli attributi personalizzati da un file sorgente archiviato in una posizione specificata dall'utente.

Puoi usare Git, GitHubo bucket Amazon S3 come sorgenti di download per HTTP Chef libri di cucina e ricette specificati in un documento. AWS-ApplyChefRecipes

Nota

Associazioni che funzionano Chef le ricette non sono supportate su macOS.

Nozioni di base

Prima di creare un AWS-ApplyChefRecipes documento, preparate il Chef libri di cucina e archivio di libri di cucina. Se non ne hai già uno Chef il ricettario che desideri utilizzare, puoi iniziare utilizzando un HelloWorld ricettario di prova che AWS hai preparato per te. Il documento AWS-ApplyChefRecipes punta già a questo libro di cucina per impostazione predefinita. I tuoi libri di cucina dovrebbero essere impostati in modo simile alla seguente struttura di directory. Nel seguente esempio, jenkins e nginx sono esempi di Chef libri di cucina disponibili in Chef Supermarketsul Chef sito web.

Sebbene non AWS possa supportare ufficialmente i libri di cucina su Chef Supermarketsito web, molti di loro funzionano con il AWS-ApplyChefRecipes documento. Di seguito sono riportati esempi di criteri per stabilire quando si sta testando un libro di cucina della community:

  • Il libro di cucina dovrebbe supportare i sistemi operativi basati su Linux dei nodi di Systems Manager gestiti individuati come target.

  • Il ricettario deve essere valido per il Chef versione client (Chef da 11 a Chef 18) che usi.

  • Il ricettario è compatibile con Chef Infra Client, e non richiede un server Chef.

Verificate di poter accedere al Chef.io sito Web, in modo che tutti i libri di cucina specificati nell'elenco di esecuzione possano essere installati quando viene eseguito il documento (SSMdocumento) Systems Manager. L'utilizzo di una cartella cookbooks nidificata è supportato, ma non obbligatorio; è possibile memorizzare i libri di cucina direttamente sotto il livello radice.

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

Prima di creare un State Manager associazione che esegue Chef ricette, tieni presente che l'esecuzione del documento installa il Chef software client sui nodi gestiti di Systems Manager, a meno che non si imposti il valore di Chef versione client suNone. Questa operazione utilizza uno script di installazione da Chef installare Chef componenti per tuo conto. Prima di pubblicare un AWS-ApplyChefRecipes documento, assicuratevi che la vostra azienda sia in grado di rispettare tutti i requisiti legali applicabili, incluse le condizioni di licenza applicabili all'uso di Chef software. Per ulteriori informazioni, consultare la .Chef sito web.

Systems Manager può fornire report di conformità a un bucket S3, alla console Systems Manager, o rendere disponibili i risultati di conformità in risposta ai comandi di Systems ManagerAPI. Per eseguire report di conformità di Systems Manager, il profilo dell'istanza collegato con i nodi Systems Manager gestiti deve disporre delle autorizzazioni per scrivere nel bucket S3. Il profilo dell'istanza deve disporre delle autorizzazioni per utilizzare Systems Manager PutComplianceItemAPI. Per ulteriori informazioni sulla conformità di Systems Manager, consultare ConformitàAWS Systems Manager.

Registrazione dell'esecuzione del documento

Quando si esegue un documento Systems Manager (SSMdocumento) utilizzando un State Manager associazione, puoi configurare l'associazione per scegliere l'output dell'esecuzione del documento e puoi inviare l'output ad Amazon S3 o Amazon CloudWatch Logs (Logs)CloudWatch . Per facilitare la risoluzione dei problemi al termine dell'esecuzione di un'associazione, verifica che l'associazione sia configurata per scrivere l'output dei comandi su un bucket Amazon S3 o su Logs. CloudWatch Per ulteriori informazioni, consulta Utilizzo delle associazioni in Systems Manager.

Applicazione JSON degli attributi agli obiettivi durante l'esecuzione di una ricetta

È possibile specificare JSON gli attributi per Chef client da applicare ai nodi di destinazione durante un'esecuzione di associazione. Durante la configurazione dell'associazione, puoi fornire raw JSON o fornire il percorso di un JSON file archiviato in Amazon S3.

Usa JSON gli attributi quando desideri personalizzare il modo in cui viene eseguita la ricetta senza dover modificare la ricetta stessa, ad esempio:

  • Sovrascrivere un numero limitato di attributi

    Usa custom JSON per evitare di dover mantenere più versioni di una ricetta per adattarsi a differenze minori.

  • Fornire valori variabili

    Usa custom JSON per specificare i valori che possono cambiare da run-to-run. Ad esempio, se il tuo Chef i libri di cucina configurano un'applicazione di terze parti che accetta pagamenti, puoi utilizzare custom JSON per specificare l'endpoint URL di pagamento.

Specificare gli attributi in formato raw JSON

Di seguito è riportato un esempio del formato che è possibile utilizzare per specificare JSON gli attributi personalizzati per Chef ricetta.

{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Specificare il percorso di un file JSON

Di seguito è riportato un esempio del formato che è possibile utilizzare per specificare il percorso JSON degli attributi personalizzati per Chef ricetta.

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

Utilizzo di Git come origine di un libro di cucina

Il AWS-ApplyChefRecipes documento utilizza il downloadContent plugin aws: per il download Chef libri di cucina. Per scaricare contenuti da Git, specifica le informazioni sul tuo repository Git nel JSON formato come nell'esempio seguente. Sostituisci ogni example-resource-placeholder con le tue informazioni.

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

Utilizzo GitHub come fonte di libri di cucina

Il AWS-ApplyChefRecipes documento utilizza il downloadContent plugin aws: per scaricare libri di cucina. Per scaricare contenuti da GitHub, specifica le informazioni sul tuo GitHub repository nel JSON formato illustrato nell'esempio seguente. Sostituisci ciascuno example-resource-placeholder con le tue informazioni.

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

Utilizzo di HTTP come fonte di libro di cucina

È possibile memorizzare Chef libri di cucina in una HTTP posizione personalizzata come struttura singola .zip o a tar.gz file o come struttura di directory. Per scaricare contenuti daHTTP, specificate il percorso del file o della directory nel JSON formato illustrato nell'esempio seguente. Sostituisci ogni example-resource-placeholder con le tue informazioni.

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

Utilizzo di Amazon S3 come fonte di libro di cucina

Puoi anche archiviare e scaricare Chef libri di cucina in Amazon S3 come struttura .zip singola o a file tar.gz o come struttura di directory. Per scaricare contenuti da Amazon S3, specifica il percorso del file nel JSON formato come negli esempi seguenti. Sostituisci ogni example-resource-placeholder con le tue informazioni.

Esempio 1: Scaricare un libro di cucina specifico

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

Esempio 2: download dei contenuti di una directory

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

Se specifichi Amazon S3, il profilo dell'istanza AWS Identity and Access Management (IAM) sui nodi gestiti deve essere configurato con la AmazonS3ReadOnlyAccess policy. Per ulteriori informazioni, vedere Configurazione delle autorizzazioni di istanza richieste per Systems Manager.

Crea un'associazione che venga eseguita Chef ricette (console)

La procedura seguente descrive come utilizzare la console Systems Manager per creare un State Manager associazione che viene eseguita Chef libri di cucina utilizzando il AWS-ApplyChefRecipes documento.

  1. Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel riquadro di navigazione, scegli State Manager.

  3. Scegliere State Manager, quindi scegli Crea associazione.

  4. Per Name (Nome), specificare un nome che consente di ricordare lo scopo dell'associazione.

  5. Nell'elenco Document (Documento) scegliere AWS-ApplyChefRecipes.

  6. In Parametri, per Tipo di sorgente, seleziona Git, GitHubHTTP, o S3.

  7. Per informazioni origine, inserisci le informazioni sull'origine del libro di cucina utilizzando il formato appropriato per Tipo di origine selezionato nel passaggio 6. Per ulteriori informazioni, consulta i seguenti argomenti:

  8. In Esegui elenco, elencare le ricette che si desidera eseguire nel formato seguente, separando ogni ricetta con una virgola come mostrato. Non includere uno spazio dopo la virgola. Sostituisci ciascuno example-resource-placeholder con le tue informazioni.

    recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name]
  9. (Facoltativo) Specificate JSON gli attributi personalizzati che desiderate Chef client da passare ai nodi di destinazione.

    1. Nel contenuto JSON degli attributi, aggiungi tutti gli attributi che desideri Chef client da passare ai nodi di destinazione.

    2. Nelle fonti JSON degli attributi, aggiungi i percorsi a tutti gli attributi che desideri Chef client da passare ai nodi di destinazione.

    Per ulteriori informazioni, consulta Applicazione JSON degli attributi agli obiettivi durante l'esecuzione di una ricetta.

  10. Per Chef versione client, specificare a Chef versione. I valori validi sono compresi tra 11 e 18 o None. Se si specifica un numero compreso tra 11 18 (incluso), Systems Manager installa il file corretto Chef versione client sui nodi di destinazione. Se si specificaNone, Systems Manager non installa Chef client sui nodi di destinazione prima di eseguire le ricette del documento.

  11. (Facoltativo) Per Chef argomenti del client, specificare argomenti aggiuntivi supportati per la versione di Chef stai usando. Per saperne di più sugli argomenti supportati, esegui chef-client -h su un nodo che esegue il Chef cliente.

  12. (Facoltativo) Abilitare Why-run per mostrare le modifiche apportate ai nodi di destinazione se vengono eseguite le ricette, senza modificare effettivamente i nodi di destinazione.

  13. In Gravità della conformità, scegliere la gravità dei risultati della conformità di Systems Manager che si desidera segnalare. Il report di conformità indica se l'associazione è conforme o non conforme e il livello di gravità specificato qui. I report di conformità vengono archiviati in un bucket S3 specificato come valore del parametro Compliance report bucket (bucket del report di conformità) (passaggio 14). Per ulteriori informazioni sulla conformità, consultare Scopri i dettagli sulla conformità in questa guida.

    Le scansioni di conformità misurano lo spostamento tra le configurazioni specificate nel Chef ricette e risorse dei nodi. I valori validi sono Critical, High, Medium, Low, Informational, Unspecified o None. Per ignorare la segnalazione di conformità, scegliere None.

  14. Per Tipo di conformità, specificare il tipo di conformità per il quale si desidera segnalare i risultati. I valori validi sono Association per State Manager associazioni o Custom:custom-type. Il valore predefinito èCustom:Chef.

  15. Per il bucket di report sulla conformità, inserisci il nome di un bucket S3 in cui archiviare le informazioni su ogni Chef esecuzione eseguita da questo documento, inclusa la configurazione delle risorse e i risultati di conformità.

  16. In Rate control, configura le opzioni per l'esecuzione State Manager associazioni attraverso una flotta di nodi gestiti. Per informazioni sull'utilizzo dei controlli di velocità, consultare Comprensione degli obiettivi e dei controlli delle tariffe in State Manager associazioni.

    In Convaluta, scegli un'opzione:

    • Scegliere targets (target) per immettere il numero assoluto di target che possono eseguire contemporaneamente l'associazione.

    • Scegliere percentage (percentuale) per immettere la percentuale del set target che può eseguire contemporaneamente l'associazione.

    In Soglia di errore, scegli un'opzione:

    • Scegli gli errori per inserire un numero assoluto di errori consentiti in precedenza State Manager interrompe l'esecuzione di associazioni su obiettivi aggiuntivi.

    • Scegli la percentuale per inserire una percentuale di errori consentiti in precedenza State Manager interrompe l'esecuzione di associazioni su obiettivi aggiuntivi.

  17. (Opzionale) In Output optione (Opzioni di output), per salvare l'output del comando in un file, selezionare la casella Enable writing output to S3 (Abilita scrittura in S3). Digitare i nomi del bucket e del prefisso (cartella) nelle caselle.

    Nota

    Le autorizzazioni S3 che garantiscono la possibilità di scrivere i dati in un bucket S3 sono quelle del profilo di istanza assegnato al nodo gestito, non quelle dell'IAMutente che esegue questa attività. Per ulteriori informazioni, vedere Configurare le autorizzazioni di istanza richieste per Systems Manager o Creare un ruolo IAM di servizio per un ambiente ibrido. Inoltre, se il bucket S3 specificato si trova in un altro bucket Account AWS, verifica che il profilo di istanza o il ruolo di IAM servizio associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

  18. Scegliere Create Association (Crea associazione).

Crea un'associazione che venga eseguita Chef ricette (CLI)

La procedura seguente descrive come utilizzare AWS Command Line Interface (AWS CLI) per creare un State Manager associazione che esegue i libri di cucina Chef utilizzando il AWS-ApplyChefRecipes documento.

  1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Eseguite uno dei seguenti comandi per creare un'associazione che venga eseguita Chef libri di cucina sui nodi di destinazione che hanno i tag specificati. Usa il comando appropriato per il tipo di origine del libro di cucina e il sistema operativo. Sostituisci ciascuno example-resource-placeholder con le tue informazioni.

    1. Origine Git

      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 fonte

      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"

      Ecco un esempio.

      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. HTTPfonte

      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. Origine Amazon S3

      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"

      Ecco un esempio.

      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 *)"

      Il sistema crea l'associazione e, a meno che l'espressione cron o rate specificata non lo impedisca, esegue l'associazione sui nodi di destinazione.

      Nota

      State Manager le associazioni non supportano tutte le espressioni cron e rate. Per ulteriori informazioni sulla creazione di espressioni cron e rate per le associazioni, consulta Riferimento: espressioni Cron e Rate per Systems Manager.

  3. Esegui il comando riportato sotto per visualizzare lo stato dell'associazione appena creata.

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

Visualizzazione dei dettagli di conformità delle risorse Chef

Systems Manager acquisisce informazioni sulla conformità relative a Chef-risorse gestite nel valore del bucket del report di conformità di Amazon S3 che hai specificato quando hai eseguito il documento. AWS-ApplyChefRecipes Ricerca di informazioni su Chef gli errori relativi alle risorse in un bucket S3 possono richiedere molto tempo. È invece possibile visualizzare queste informazioni nella pagina Compliance (Conformità) di Systems Manager.

Una scansione di Systems Manager Compliance raccoglie informazioni sulle risorse sui nodi gestiti che sono state create o controllate nei nodi più recenti. Chef eseguire. Le risorse possono includere file, directory, servizi systemd, pacchetti yum, file con modelli, pacchetti gem e libri di cucina dipendenti, tra gli altri.

Nella sezione Compliance resources summary (Riepilogo risorse di conformità) è visualizzato il conteggio delle risorse non riuscite. Nell'esempio seguente, ComplianceTypeè Custom:Chefe una risorsa non è conforme.

Nota

Custom:Chefè il ComplianceTypevalore predefinito nel documento. AWS-ApplyChefRecipes Il valore è personalizzabile.

Visualizzazione dei conteggi nella sezione Compliance resources summary (Riepilogo risorse di conformità) della pagina Compliance (Conformità).

La sezione Panoramica dei dettagli delle risorse mostra le informazioni sulla AWS risorsa che non è conforme. Questa sezione include anche Chef tipo di risorsa rispetto alla quale è stata eseguita la conformità, gravità del problema, stato di conformità e collegamenti a ulteriori informazioni, ove applicabile.

Visualizzazione dei dettagli sulla conformità per un Chef guasto gestito delle risorse

View output (Visualizzazione dell'output) mostra gli ultimi 4.000 caratteri dello stato dettagliato. Systems Manager inizia con l'eccezione come primo elemento, trova messaggi dettagliati e li mostra fino a raggiungere la quota di 4.000 caratteri. Questo processo mostra i messaggi di log generati prima dell'eccezione, ovvero i messaggi più rilevanti per la risoluzione dei problemi.

Per informazioni su come visualizzare le informazioni di conformità, consulta ConformitàAWS Systems Manager.

Importante

Se il file State Manager l'associazione fallisce, non viene riportato alcun dato di conformità. Ad esempio, se Systems Manager tenta di scaricare un Chef ricettario da un bucket S3 a cui il nodo non dispone dell'autorizzazione di accesso, l'associazione fallisce e Systems Manager non riporta dati di conformità.