Implementazione delle ricette per gli stack Chef 11.4 - AWS OpsWorks

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

Implementazione delle ricette per gli stack Chef 11.4

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disattivato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il Supporto AWS Team su AWS re:post o tramite Premium AWS Support.

Importante

Non riutilizzare i nomi di libri di ricette predefiniti per i libri di ricette personalizzati e per quelli della community. I libri di ricette personalizzati con lo stesso nome dei libri di ricette predefiniti potrebbero avere esito negativo. Per un elenco completo dei libri di cucina integrati disponibili con gli stack Chef 11.10, 11.4 e 0.9, consulta il repository opsworks-cookbooks su. GitHub

Il limite principale degli stack Chef 11.4 è data dal fatto che le ricette non possono utilizzare i contenitori di dati e la ricerca di Chef. Tuttavia, AWS OpsWorks Stacks installa gli attributi di configurazione e distribuzione dello stack su ogni istanza che contengono molte delle informazioni che si ottengono con la ricerca, tra cui:

  • Dati definiti dall'utente dalla console, ad esempio nomi dell'host o delle app.

  • Dati di configurazione dello stack generati dal servizio AWS OpsWorks Stacks, come i layer, le app e le istanze dello stack, e dettagli su ciascuna istanza come l'indirizzo IP.

  • Attributi JSON personalizzati che contengono i dati forniti dall'utente e che possono avere lo stesso scopo dei contenitori di dati.

AWS OpsWorks Stacks installa una versione corrente degli attributi di configurazione e distribuzione dello stack su ogni istanza per ogni evento del ciclo di vita, prima di iniziare l'esecuzione Chef dell'evento. I dati sono disponibili per le ricette tramite la sintassi node[:attribute][:child_attribute][...] standard. Ad esempio, gli attributi di configurazione e distribuzione dello stack includono il nome dello stack node[:opsworks][:stack][:name].

Il seguente segmento di uno dei libri di ricette predefiniti recupera il nome dello stack e lo utilizza per creare un file di configurazione.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

Molti dei valori degli attributi di configurazione e distribuzione dello stack contengono più attributi. Devi eseguire iterazioni su questi attributi per recuperare le informazioni necessarie. L'esempio seguente mostra un segmento di attributi di configurazione e distribuzione dello stack, rappresentati sotto forma di oggetto JSON per comodità. Contiene un attributo di livello superiore, deploy, che contiene un attributo per ogni app dello stack, denominato con il nome breve dell'app.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

Ogni attributo dell'app contiene un set di attributi che caratterizzano l'app. Ad esempio, l'attributo deploy_to rappresenta la directory di distribuzione dell'app. Il seguente segmento imposta l'utente, il gruppo e il percorso della directory di distribuzione di ogni app.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

Per ulteriori informazioni sugli attributi di configurazione e distribuzione dello stack, consulta Personalizzazione degli stack AWS OpsWorks. Per ulteriori informazioni sulle directory di distribuzione, consulta Ricette di ditribuzione.

Gli stack Chef 11.4 non supportano i contenitori di dati, ma puoi aggiungere dati arbitrari agli attributi di configurazione e distribuzione dello stack specificando dati JSON personalizzati. Le ricette potranno quindi accedere ai dati utilizzando la sintassi di nodo standard di Chef. Per ulteriori informazioni, consulta Utilizzo di un JSON personalizzato.

Se hai bisogno della funzionalità di un data bag crittografato, un'opzione è archiviare gli attributi sensibili in un luogo sicuro, ad esempio un bucket Amazon S3 privato. Le tue ricette possono quindi utilizzare l'SDK AWS Ruby, installato su tutte le istanze AWS OpsWorks Stacks, per scaricare i dati dal bucket.

Nota

Ogni istanza Stacks ha un profilo di istanza. AWS OpsWorks Il ruolo IAM associato specifica a quali risorse AWS possono accedere le applicazioni in esecuzione sull'istanza. Affinché le tue ricette possano accedere a un bucket Amazon S3, la policy del ruolo deve includere un'istruzione simile alla seguente, che concede l'autorizzazione a recuperare i file da un bucket specificato.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

Per ulteriori informazioni sui profili delle istanze, consulta Specificazione delle autorizzazioni per le app in esecuzione su istanze EC2 .