AWS Systems ManagerChange Managernon è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, vedi modifica della AWS Systems ManagerChange Manager disponibilità.
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 eseguono ricette di Chef
È possibile creare State Manager associazioni che eseguono Chef ricette utilizzando il documento AWS-ApplyChefRecipes SSM. State Managerè uno strumento in AWS Systems Manager. È possibile definire come destinazione i nodi di Systems Manager gestiti basati su Linux con il documento SSM AWS-ApplyChefRecipes. Questo documento offre i seguenti vantaggi per l'esecuzione di ricette Chef:
-
Supporta più versioni di Chef (da Chef 11 a Chef 18).
-
Installa automaticamente il software client Chef nei 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. -
Facoltativamente applica attributi JSON personalizzati alle esecuzioni
chef-client. -
Facoltativamente, applica attributi JSON personalizzati da un file di origine archiviato in una posizione specificata dall'utente.
È possibile utilizzare i bucket Git, GitHub, HTTP, o Amazon S3 come origini di download per i libri di cucina e le ricette Chef specificate in un documento AWS-ApplyChefRecipes.
Nota
Le associazioni che eseguono ricette Chef non sono supportate su macOS.
Nozioni di base
Prima di creare un documento AWS-ApplyChefRecipes, preparare i libri di cucina Chef e il relativo repository. Se non hai già un Chef libro di cucina 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. Nell'esempio seguente, jenkins e nginx sono esempi di libri di cucina Chef disponibili su Chef Supermarket
Sebbene non sia AWS possibile supportare ufficialmente i libri di cucina sul Chef SupermarketAWS-ApplyChefRecipes 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 libro di cucina è valido per la versione client Chef (Chef Chef 11 a Chef 18) che utilizzi.
-
Il libro di cucina è compatibile con Chef Infra Client e non richiede un server Chef.
Verifica di avere la possibilità di accedere al sito web Chef.io, in modo che tutti i libri di cucina specificati nell'elenco di esecuzione siano installati quando viene eseguito il documento di Systems Manager (documento SSM). 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'associazione State Manager che esegua ricette Chef, è necessario tenere presente che l'esecuzione del documento installa il software client Chef nei nodi gestiti di Systems Manager, a meno che non si imposti i valori della versione client Chef a None. Questa operazione utilizza uno script di installazione Chef per installare i componenti Chef per conto dell'utente. Prima di eseguire un documento AWS-ApplyChefRecipes, assicurati che l'azienda sia in grado di soddisfare tutti i requisiti legali applicabili, incluse le condizioni di licenza applicabili all'uso del software Chef. Per ulteriori informazioni, consulta il sito web Chef
Systems Manager può fornire report di conformità a un bucket S3, alla console di Systems Manager o rendere disponibili i risultati di conformità in risposta ai comandi dell'API Systems Manager. 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 l'API PutComplianceItem Systems Manager. Per ulteriori informazioni sulla conformità di Systems Manager, consultare ConformitàAWS Systems Manager.
Registrazione dell'esecuzione del documento
Quando esegui un documento Systems Manager (documento SSM) utilizzando un'State Managerassociazione, puoi configurare l'associazione per scegliere l'output dell'esecuzione del documento e puoi inviare l'output ad Amazon S3 o CloudWatch Amazon Logs (LogsCloudWatch ). 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 degli attributi JSON alle destinazioni durante l'esecuzione di una ricetta
È possibile specificare gli attributi JSON che il client Chef applica ai nodi di destinazione durante l'esecuzione di un'associazione. Durante la configurazione dell'associazione, è possibile fornire un formato JSON non elaborato o specificare il percorso di un file JSON archiviato in Amazon S3.
Usa gli attributi JSON 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
Utilizza un formato JSON personalizzato per evitare di dover mantenere più versioni di una ricetta per adattarla a piccole differenze.
-
Fornire valori variabili
Usa un codice JSON personalizzato per specificare i valori che potrebbero cambiare da. run-to-run Ad esempio, se i libri di cucina Chef configurano un'applicazione di terze parti che accetta pagamenti, è possibile utilizzare un formato JSON personalizzato per specificare l'URL dell'endpoint di pagamento.
Definizione degli attributi in formato JSON non elaborato
Di seguito è riportato un esempio del formato da utilizzare per specificare attributi JSON personalizzati per la ricetta Chef.
{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Definizione di un percorso per un file JSON
Di seguito è riportato un esempio del formato da utilizzare per specificare il percorso degli attributi JSON personalizzati per la ricetta Chef.
{"sourceType":"s3", "sourceInfo":"someS3URL1"}, {"sourceType":"s3", "sourceInfo":"someS3URL2"}
Utilizzo di Git come origine di un libro di cucina
Il documento AWS-ApplyChefRecipes utilizza il plug-in aws:downloadContent per scaricare libri di cucina Chef. Per scaricare contenuti da Git, specifica le informazioni sul repository Git in formato JSON come nel seguente esempio. 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 di GitHub come fonte di libro di cucina
Il documento AWS-ApplyChefRecipes utilizza il plug-in aws:downloadContent per scaricare libri di cucina. Per scaricare contenuti da GitHub, specifica le informazioni sul repository GitHub in formato JSON come nel seguente esempio. Sostituisci ogni 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 origine di un libro di cucina
Puoi archiviare Chef i libri di cucina in una posizione HTTP personalizzata come tar.gz file singolo .zip o come struttura di directory. Per scaricare contenuti da HTTP, specifica il percorso del file o della directory in formato JSON, come 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
È possibile anche archiviare e scaricare i libri di cucina Chef in Amazon S3 come singolo file .zip o tar.gz, oppure come struttura di directory. Per scaricare contenuti da Amazon S3, specifica il percorso del file in formato JSON, 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, consulta la pagina Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager.
Creazione di un'associazione che esegue le ricette Chef (console)
La procedura seguente descrive come utilizzare la console di Systems Manager per creare un'associazione State Manager che esegua i libri di ricette Chef utilizzando il documento AWS-ApplyChefRecipes.
Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/
. Nel pannello di navigazione, scegliere State Manager.
-
Selezionare State Manager poi Create Association (Crea associazione).
-
Per Name (Nome), specificare un nome che consente di ricordare lo scopo dell'associazione.
-
Nell'elenco Document (Documento) scegliere
AWS-ApplyChefRecipes. -
In Parametri, per Tipo di origine, seleziona Git, GitHub, HTTP, oppure S3.
-
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:
-
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 ogni
example-resource-placeholdercon le tue informazioni.recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name] -
(Facoltativo) Specifica gli attributi JSON personalizzati che desideri che il client Chef passi ai nodi di destinazione.
-
In Contenuto degli attributi JSON, aggiungi qualsiasi attributo che desideri che il client Chef passi ai nodi di destinazione.
-
In Origini degli attributi JSON, aggiungi i percorsi degli attributi che desideri che il client Chef passi ai nodi di destinazione.
Per ulteriori informazioni, consulta Applicazione degli attributi JSON alle destinazioni durante l'esecuzione di una ricetta.
-
-
Per la versione client Chef, specificare una versione Chef. I valori validi sono compresi tra
11e18oNone. Se si specifica un numero compreso tra11e18(incluso), Systems Manager installa la versione client Chef corretta nei nodi di destinazione. Se si specificaNone, Systems Manager non installa il client Chef nei nodi di destinazione prima di eseguire le ricette del documento. -
(Facoltativo) In Argomenti del client Chef, specificare argomenti aggiuntivi supportati per la versione di Chef utilizzata. Per ulteriori informazioni sugli argomenti supportati, eseguire
chef-client -hsu un nodo che esegue il client Chef. -
(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.
-
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 la differenza tra la configurazione specificata nelle ricette Chef e le risorse di nodo. I valori validi sono
Critical,High,Medium,Low,Informational,UnspecifiedoNone. Per ignorare la segnalazione di conformità, scegliereNone. -
Per Tipo di conformità, specificare il tipo di conformità per il quale si desidera segnalare i risultati. I valori validi sono
Associationper State Manager le associazioni, oCustom:custom-type. Il valore predefinito èCustom:Chef. -
Per Bucket del report di conformità, immettere il nome di un bucket S3 in cui memorizzare le informazioni su ogni esecuzione Chef effettuata da questo documento, inclusi i risultati della configurazione delle risorse e della conformità.
-
Nella sezione Rate control (Controllo velocità), configurare le opzioni per eseguire le associazioni di State Manager in tutto il parco istanze nodi gestiti. Per informazioni sull'utilizzo dei controlli di velocità, consultare Comprensioni su destinazioni e controlli di velocità nelle associazioni di State Manager.
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:
-
Scegliere errors (errori) per immettere il numero assoluto di errori consentiti prima che State Manager arresti l'esecuzione delle associazioni su altri target.
-
Scegliere percentage (percentuale) per immettere una percentuale di errori consentiti prima che State Manager arresti l'esecuzione delle associazioni su altri target.
-
(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 assegnano la possibilità di scrivere dati in un S3 Bucket sono quelle del profilo del nodo e non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager oppure Creazione di un ruolo di servizio IAM per un ambiente ibrido. Inoltre, se il bucket S3 specificato si trova in un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato all'istanza disponga delle autorizzazioni necessarie per scrivere su quel bucket.
-
Scegliere Create Association (Crea associazione).
Creazione di un'associazione che esegue le ricette Chef (CLI)
La procedura seguente descrive come utilizzare AWS Command Line Interface (AWS CLI) per creare un'State Managerassociazione che esegua i libri di cucina Chef utilizzando il AWS-ApplyChefRecipes documento.
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.
-
Esegui uno dei seguenti comandi per creare un'associazione che esegua Chef libri di cucina su nodi di destinazione con i tag specificati. Usa il comando appropriato per il tipo di origine del libro di cucina e il sistema operativo. Sostituisci ogni
example-resource-placeholdercon le tue informazioni.-
Origine Git
-
GitHub source (origine)
Ecco un esempio.
-
Origine HTTP
-
Origine Amazon S3
Ecco un esempio.
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
Le associazioni di State Manager 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 della frequenza per Systems Manager.
-
-
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 le informazioni di conformità sulle risorse gestite da Chef nel valore del Compliance report bucket (bucket del report di conformità) di Amazon S3 specificato durante l'esecuzione del documento AWS-ApplyChefRecipes. La ricerca di informazioni sugli errori delle risorse Chef in un bucket S3 richiede del tempo. È invece possibile visualizzare queste informazioni nella pagina Compliance (Conformità) di Systems Manager.
Un'analisi della conformità di Systems Manager raccoglie informazioni sulle risorse dei nodi gestiti create o controllate nell'esecuzione Chef più recente. 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: Chef e una risorsa non è conforme.
Nota
Custom:Chefè il ComplianceTypevalore predefinito nel documento. AWS-ApplyChefRecipes Il valore è personalizzabile.
La sezione Panoramica dei dettagli delle risorse mostra le informazioni sulla AWS risorsa che non è conforme. Questa sezione include anche il tipo di risorsa Chef per cui è stata eseguita la conformità, la gravità del problema, lo stato di conformità e i collegamenti a ulteriori informazioni, se applicabile.
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 l'associazione State Manager ha esito negativo, non viene creato alcun report sui dati di conformità. Ad esempio, se Systems Manager tenta di scaricare un libro di ricette Chef da un bucket S3 per il cui accesso il nodo non dispone di autorizzazione, l'associazione non va a buon fine e Systems Manager non crea alcun report dei dati di conformità.