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 AWS Support Team su AWS re:post
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.
-
JSONAttributi personalizzati che contengono dati forniti dall'utente e possono avere più o meno lo stesso scopo dei data bag.
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 di 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 estratto degli attributi di configurazione e distribuzione dello stack, che per comodità sono rappresentati come oggetti. JSON 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 data bag, ma è possibile aggiungere dati arbitrari alla configurazione dello stack e agli attributi di distribuzione specificando custom. JSON Le ricette potranno quindi accedere ai dati utilizzando la sintassi di nodo standard di Chef. Per ulteriori informazioni, consulta Utilizzo di Custom JSON.
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 AWSRuby
Nota
Ogni istanza Stacks ha un profilo di istanza. AWS OpsWorks Il IAMruolo associato specifica a quali AWS risorse 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.