

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

# Libri di ricette e ricette
<a name="workingcookbook"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

OpsWorks Stacks utilizza i libri di cucina Chef per gestire attività come l'installazione e la configurazione di pacchetti e la distribuzione di app. Questa sezione descrive come usare i libri di cucina con Stacks. OpsWorks Per ulteriori informazioni, consulta [Chef](http://www.opscode.com/).

**Nota**  
OpsWorks Stacks attualmente supporta le versioni 12, 11.10.4, 11.4.4 e 0.9.15.5 di Chef. Tuttavia, Chef 0.9.15.5 è obsoleto e non è consigliabile utilizzarlo per i nuovi stack. Per comodità, agli stack viene in genere fatto riferimento mediante i rispettivi numeri di versione principale e secondaria. Gli stack che eseguono Chef 0.9 o 11.4 utilizzano [Chef Solo](https://docs.chef.io/chef_solo.html), mentre gli stack che eseguono Chef 12 o 11.10 utilizzano [Chef Client](http://www.getchef.com/blog/2013/10/31/chef-client-z-from-zero-to-chef-in-8-5-seconds/) in modalità locale. Per gli stack Linux, puoi utilizzare la funzionalità Configuration Manager (Gestore configurazione) per specificare la versione di Chef da utilizzare quando [crei uno stack](workingstacks-creating.md). Gli stack di Windows devono utilizzare Chef 12.2. Per ulteriori informazioni, incluse le linee guida per la migrazione degli stack in versioni più recenti di Chef, consulta [Versione di Chef](workingcookbook-chef11.md).

**Topics**
+ [Repository dei libri di ricette](workingcookbook-installingcustom-repo.md)
+ [Versione di Chef](workingcookbook-chef11.md)
+ [Versioni di Ruby](workingcookbook-ruby.md)
+ [Installazione di libri di ricette personalizzati](workingcookbook-installingcustom-enable.md)
+ [Aggiornamento dei libri di ricette personalizzati](workingcookbook-installingcustom-enable-update.md)
+ [Esecuzione di ricette](workingcookbook-executing.md)

# Repository dei libri di ricette
<a name="workingcookbook-installingcustom-repo"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

I tuoi libri di ricette personalizzati devono essere archiviati in un repository online: un archivio come un file .zip o un gestore di controllo del codice sorgente come Git. Uno stack può avere un solo repository di libri di ricette personalizzati, ma tale repository può contenere un numero indefinito di libri di ricette. Quando installi o aggiorni i libri di cucina, OpsWorks Stacks installa l'intero repository in una cache locale su ciascuna istanza dello stack. Quando necessita, ad esempio, di eseguire una o più ricette, un'istanza utilizza il codice della cache locale.

Di seguito viene descritto come strutturare il repository del libro di ricette in base al tipo. Il testo in corsivo nelle illustrazioni rappresenta i nomi di directory e di file definiti dall'utente, incluso il nome del repository o dell'archivio.

**Gestore di controllo del codice sorgente**  
OpsWorks Stacks supporta i seguenti gestori del controllo del codice sorgente:  
+ Stack Linux: Git e Subversion
+ Stack di Windows — Git
Di seguito viene mostrata la struttura di file e directory richiesta:  

![\[Struttura obbligatoria per i repository di libri di ricette SCM\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/cookbook_folders.png)

+ Le directory di libri di ricette devono essere tutte al primo livello.

**Archive (Archivia)**  
OpsWorks Stacks supporta i seguenti archivi:  
+ Stack Linux: file zip, gzip, bzip2 o tarball, archiviati su Amazon S3 o su un sito Web (archivio HTTP). 

  OpsWorks Stacks non supporta archivi tar non compressi.
+ Stack di Windows: file zip e tgz (tar compresso con gzip), archiviati su Amazon S3.
Di seguito viene mostrata la struttura di file e directory richiesta, che varia a seconda che si esegua uno stack Linux o Windows. La struttura del libro di ricette è la stessa dei repository SCM, perciò è rappresentata da un'ellissi (...).  

![\[Struttura obbligatoria per gli archivi\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/cookbook_folders_archive.png)

+ Pile Linux: le directory dei libri di cucina devono essere contenute in una directory principale. 
+ Pile di Windows: i libri di cucina devono trovarsi al livello più alto dell'archivio.

  Se disponi di un solo libro di ricette, puoi omettere la relativa directory e inserire i file del libro di ricette nel primo livello. In questo caso, OpsWorks Stacks ottiene il nome del libro di ricette da metadata.rb.

Ogni directory del libro di ricette include almeno uno, ma generalmente tutti, i seguenti file e directory standard, che devono utilizzare nomi standard:
+ `attributes`— I file degli attributi del libro di cucina. 
+ `recipes`— I file di ricette del ricettario.
+ `templates`— I file modello del ricettario. 
+ *other*— Directory opzionali definite dall'utente che contengono altri tipi di file, come definizioni o specifiche.
+ `metadata.rb`— I metadati del ricettario.

  Per Chef 11.10 e versioni successive, se le tue ricette dipendono da altri libri di ricette, devi includere le istruzioni `depends` corrispondenti nel file `metadata.rb` del tuo libro di ricette. Ad esempio, se il tuo libro di ricette include una ricetta con un'istruzione come `include_recipe anothercookbook::somerecipe`, il file `metadata.rb` del libro di ricette include la riga seguente: `depends "anothercookbook"`. Per ulteriori informazioni, consulta l'articolo sulle [informazioni sui metadati dei libri di ricette](http://docs.chef.io/cookbook_repo.html#about-cookbook-metadata).

I modelli devono essere in una sottodirectory della directory `templates`, che contiene almeno una e, facoltativamente, più sottodirectory. Tali sottodirectory possono a loro volta avere altre sottodirectory.
+ Solitamente i modelli hanno una sottodirectory `default`, che contiene i file modello che Chef utilizza per impostazione predefinita.
+ *other* rappresenta sottodirectory facoltative che possono essere utilizzate per modelli specifici del sistema operativo.
+ Chef utilizza automaticamente il modello dalla sottodirectory appropriata, in base alle convenzione di denominazione descritte in [Specificità dei file](http://docs.chef.io/templates.html#file-specificity). Ad esempio, per i sistemi operativi Amazon Linux e Ubuntu, puoi inserire modelli specifici del sistema operativo in sottodirectory denominate, rispettivamente, `amazon` o `ubuntu`.

I dettagli in merito a come gestire libri di ricette personalizzati variano in base al tipo di repository preferito. 

**Per utilizzare un archivio**

1. Implementare i libri di ricette utilizzando la struttura di cartella visualizzata nella sezione precedente.

1. Crea un archivio compresso e caricalo su un bucket Amazon S3 o su un sito Web.

   Se si aggiornano i libri di ricette, è necessario creare e caricare un nuovo file di archivio. I contenuti distribuiti ai bucket Amazon S3 potrebbero contenere informazioni dei clienti. Per ulteriori informazioni sulla rimozione di dati sensibili, vedi [Come svuotare un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) o [Come eliminare un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

**Per utilizzare un SCM**

1. Configurare un repository Git o Subversion utilizzando la struttura mostrata in precedenza.

1. Se lo si desidera, è possibile utilizzare le funzionalità di controllo della versione del repository per implementare più rami o versioni.

   Se aggiorni i tuoi libri di cucina, puoi farlo in una nuova filiale e OpsWorks utilizzare direttamente la nuova versione. È anche possibile specificare particolari versioni con tag. Per informazioni dettagliate, vedi [Specifica di un archivio di libri di ricette personalizzati](workingcookbook-installingcustom-enable.md#workingcookbook-installingcustom-enable-repo).

[Installazione di libri di ricette personalizzati](workingcookbook-installingcustom-enable.md)descrive come fare in modo che OpsWorks Stacks installi il tuo repository di libri di cucina sulle istanze dello stack.

**Importante**  
Dopo aver aggiornato i libri di cucina esistenti nel repository, devi eseguire il comando `update_cookbooks` stack per indirizzare OpsWorks Stacks ad aggiornare la cache locale di ogni istanza online. Per ulteriori informazioni, consulta [Esecuzione dei comandi dello stack](workingstacks-commands.md).

# Versione di Chef
<a name="workingcookbook-chef11"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

OpsWorks Stacks supporta più versioni di Chef. La versione viene selezionata quando si [crea lo stack](workingstacks-creating.md). OpsWorks Stacks installa quindi quella versione di Chef su tutte le istanze dello stack insieme a una serie di ricette integrate compatibili con quella versione. Se installi ricette personalizzate, devono essere compatibile con la versione di Chef dello stack.

OpsWorks Stacks attualmente supporta le versioni Chef 12, 11.10, 11.4 e 0.9 per gli stack Linux e Chef 12.2 (attualmente Chef 12.22) per gli stack Windows. Per comodità, agli stack viene in genere fatto riferimento mediante i rispettivi numeri di versione principale e secondaria. Per gli stack Linux, puoi utilizzare la funzionalità Configuration Manager (Gestore configurazione) per specificare la versione di Chef da utilizzare quando [crei uno stack](workingstacks-creating.md). Gli stack di Windows devono utilizzare Chef 12.2. Per ulteriori informazioni, incluse le linee guida per la migrazione degli stack in versioni più recenti di Chef, consulta [Versione di Chef](#workingcookbook-chef11). Per tutte le informazioni sulle versioni, consulta [OpsWorks Sistemi operativi impilati](workinginstances-os.md).

**Chef 12.2**  
Il supporto per Chef 12.2 è stato introdotto a maggio 2015 e viene utilizzato solo dagli stack di Windows. La versione corrente di Chef per gli stack Windows è Chef 12.22. Viene eseguito con Chef 2.3.6 e utilizza [chef-client nella modalità locale](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode), che consente di avviare un server Chef in-memory locale chiamato [chef-zero](https://docs.chef.io/ctl_chef_client.html#about-chef-zero). La presenza di questo server permette alle ricette di utilizzare i contenitori di dati e la ricerca di Chef. Il supporto è caratterizzato da alcune limitazioni, che vengono descritte in [Implementazione delle ricette: Chef 12.2](workingcookbook-chef12.md), ma puoi eseguire numerosi libri di ricette della community senza alcuna modifica.

**Chef 12**  
Il supporto di Chef 12 è stato introdotto nel dicembre 2015 e viene utilizzato solo dagli stack Linux. Viene eseguito con Ruby 2.1.6 o 2.2.3 e usa [chef-client in modalità locale](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode), che consente alle ricette di utilizzare i contenitori di dati e la ricerca di Chef. Per ulteriori informazioni, consulta [OpsWorks Sistemi operativi impilati](workinginstances-os.md).

**Chef 11.10**  
Il supporto di Chef 11.10 è stato introdotto nel marzo 2014 e viene utilizzato solo dagli stack Linux. Viene eseguito con Ruby 2.0.0 e usa [chef-client in modalità locale](https://docs.chef.io/ctl_chef_client.html#run-in-local-mode), che consente alle ricette di utilizzare i contenitori di dati e la ricerca di Chef. Il supporto è caratterizzato da alcune limitazioni, che vengono descritte in [Implementazione delle ricette: Chef 11.10](workingcookbook-chef11-10.md), ma puoi eseguire numerosi libri di ricette della community senza alcuna modifica. Per gestire le dipendenze dei libri di ricette, puoi utilizzare anche [Berkshelf](http://berkshelf.com/). Le versioni di Berkshelf supportate dipendono dal sistema operativo. Per ulteriori informazioni, consulta [OpsWorks Sistemi operativi impilati](workinginstances-os.md). Non puoi creare stack CentOS che utilizzano Chef 11.10.

**Chef 11.4**  
Il supporto di Chef 11.4 è stato introdotto nel luglio 2013 e viene utilizzato solo dagli stack Linux. Viene eseguito con Ruby 1.8.7 e usa [chef-solo](https://docs.chef.io/chef_solo.html), che non supporta i contenitori di dati e la ricerca di Chef. Spesso puoi usare libri di cucina della community che dipendono da tali funzionalità con OpsWorks Stacks, ma devi modificarli come descritto in. [Migrazione in una nuova versione di Chef](workingcookbook-chef11-migrate.md) Non puoi creare stack CentOS che utilizzano Chef 11.4. Gli stack Chef 11.4 non sono supportati negli endpoint regionali al di fuori della regione Stati Uniti orientali (Virginia settentrionale).

**Chef 0.9**  
 Chef 0.9 viene utilizzato solo dagli stack Linux e non è più supportato. Si noti quanto segue:   
+ Non puoi utilizzare la console per creare un nuovo stack Chef 0.9.

  Devi utilizzare la CLI o l'API oppure devi creare uno stack con una versione diversa di Chef e quindi modificare la configurazione dello stack.
+ Le nuove funzionalità OpsWorks Stacks non sono disponibili per gli stack Chef 0.9.
+ Le nuove versioni dei sistemi operativi forniranno solo un supporto limitato per gli stack Chef 0.9.

  In particolare, Amazon Linux 2014.09 e versioni successive non supportano gli stack Chef 0.9 con livelli Rails App Server che dipendono da Ruby 1.8.7.
+ Le nuove regioni AWS, inclusa l'Europa (Francoforte), non supportano gli stack Chef 0.9.
Non consigliamo di utilizzare Chef 0.9 per i nuovi stack. È consigliabile eseguire la migrazione degli stack esistenti alla versione più aggiornata di Chef il prima possibile.

Se desideri utilizzare libri di cucina della community con OpsWorks Stacks, [ti consigliamo di specificare Chef 12](workingstacks-creating.md) per i nuovi stack Linux e di migrare gli stack Linux esistenti su Chef 12. Puoi utilizzare la console, l'API o la CLI di OpsWorks Stacks per migrare gli stack esistenti a una versione più recente di Chef. Per ulteriori informazioni, consulta [Migrazione in una nuova versione di Chef](workingcookbook-chef11-migrate.md).

**Topics**
+ [Implementazione di ricette per Chef 12.2 Stacks](workingcookbook-chef12.md)
+ [Implementazione delle ricette per gli stack Chef 12](workingcookbook-chef12-linux.md)
+ [Implementazione delle ricette per gli stack Chef 11.10](workingcookbook-chef11-10.md)
+ [Implementazione delle ricette per gli stack Chef 11.4](workingcookbook-chef11-4.md)
+ [Migrazione di un stack Linux esistente in una nuova versione di Chef](workingcookbook-chef11-migrate.md)

# Implementazione di ricette per Chef 12.2 Stacks
<a name="workingcookbook-chef12"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Chef 12.2 (attualmente Chef 12.22) è disponibile solo per gli stack Windows, che devono eseguire tale versione di Chef.
+ In alcuni casi le ricette devono utilizzare gli attributi e le risorse specifici di Windows.

  Per ulteriori informazioni, consulta l'argomento relativo a [Chef per Microsoft Windows](https://docs.chef.io/windows.html).
+ Le esecuzioni di Chef utilizzano Ruby 2.3.6. Pertanto, le ricette possono utilizzare la nuova sintassi Ruby.
+ Le ricette possono utilizzare i contenitori di dati e la ricerca di Chef.

  Chef 12.2 stacks può utilizzare molti libri di cucina della community senza modifiche. Per ulteriori informazioni, consultare [Utilizzo della ricerca di Chef](workingcookbook-chef11-10.md#workingcookbook-chef11-10-search) e [Utilizzo di contenitori di dati](workingcookbook-chef11-10.md#workingcookbook-chef11-10-databag).
+ La maggior parte degli attributi di configurazione e distribuzione degli stack descritti in [OpsWorks Riferimento a Stacks Data Bag](data-bags.md) e [Attributi dei libri di ricette predefiniti](attributes-recipes.md) è disponibile per le ricette Windows.

  Puoi utilizzare la ricerca di Chef per recuperare tali valori degli attributi. Per vedere un esempio, consulta [Ottenimento dei valori degli attributi con la ricerca di Chef](cookbooks-101-opsworks-opsworks-stack-config-search.md). Per un elenco degli attributi, consulta [OpsWorks Riferimento a Stacks Data Bag](data-bags.md).

# Implementazione delle ricette per gli stack Chef 12
<a name="workingcookbook-chef12-linux"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Gli stack Chef 12 offrono i seguenti vantaggi rispetto agli stack Chef 11.10:
+ Le esecuzioni di Chef utilizzano Ruby 2.1.6. Pertanto, le ricette possono utilizzare la nuova sintassi Ruby.
+ Gli stack Chef 12 possono utilizzare un numero maggiore di libri di ricette della community, senza alcuna modifica. Senza i libri di ricette predefiniti, non si verificheranno più conflitti a livello di nomi tra i libri di ricette predefiniti e quelli personalizzati. 
+ Non sei più limitato alle versioni di Berkshelf per le quali OpsWorks Stacks ha fornito pacchetti predefiniti. Berkshelf non è più installato sulle OpsWorks istanze Stacks in Chef 12. Puoi invece utilizzare qualsiasi versione di Berkshelf sulla workstation locale. 
+ Ora esiste una netta separazione tra i libri di cucina integrati forniti da OpsWorks Stacks con Chef 12 (Elastic Load Balancing, Amazon RDS e Amazon ECS) e i libri di cucina personalizzati. Ciò semplifica la risoluzione dei problemi relativi alle esecuzioni di Chef non riuscite.

# Implementazione delle ricette per gli stack Chef 11.10
<a name="workingcookbook-chef11-10"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Gli stack Chef 11.10 offrono i seguenti vantaggi rispetto agli stack Chef 11.4:
+ Le esecuzioni di Chef utilizzano Ruby 2.0.0. Pertanto, le ricette possono utilizzare la nuova sintassi Ruby.
+ Le ricette possono utilizzare i contenitori di dati e la ricerca di Chef.

  Gli stack Chef 11.10 possono utilizzare numerosi libri di ricette della community, senza alcuna modifica.
+ Puoi utilizzare Berkshelf per la gestione dei libri di ricette.

  Berkshelf offre maggiore flessibilità per quanto riguarda la gestione dei libri di ricette personalizzati e l'utilizzo dei libri di ricette della community in uno stack.
+ I libri di ricette devono dichiarare le dipendenze `metadata.rb`.

  Se il tuo libro di ricette dipende da un altro libro di ricette, devi includere tale dipendenza nel file `metadata.rb` del tuo libro di ricette. Ad esempio, se il tuo libro di ricette include una ricetta con un'istruzione come `include_recipe anothercookbook::somerecipe`, il file `metadata.rb` del libro di ricette include la riga seguente: `depends "anothercookbook"`.
+ OpsWorks Stacks installa un client MySQL sulle istanze di uno stack solo se lo stack include un livello MySQL.
+ OpsWorks Stacks installa un client Ganglia sulle istanze di uno stack solo se lo stack include un livello Ganglia.
+ Se una distribuzione esegue `bundle install` e l'installazione ha esito negativo, anche la distribuzione avrà esito negativo.

**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](https://github.com/aws/opsworks-cookbooks)  
I libri di ricette con caratteri non ASCII eseguiti correttamente sugli stack Chef 0.9 e 11.4 potrebbero avere esito negativo su uno stack Chef 11.10. Il motivo è che gli stack Chef 11.10 usano Ruby 2.0.0 per l'esecuzione di Chef, che prevede una codifica molto più rigida rispetto a Ruby 1.8.7. Per garantire che tali libri di ricette vengano eseguiti correttamente sugli stack Chef 11.10, ogni file che usa caratteri non ASCII deve avere un commento nella parte superiore che fornisce un suggerimento sulla codifica. Ad esempio, per la codifica UTF-8, il commento potrebbe essere `# encoding: UTF-8`. Per ulteriori informazioni sulla codifica di Ruby 2.0.0, consulta l'argomento relativo alla [codifica di Ruby 2.0.0](http://www.ruby-doc.org/core-2.0.0/Encoding.html).

**Topics**
+ [Installazione e precedenza dei libri di ricette](#workingcookbook-chef11-10-override)
+ [Utilizzo della ricerca di Chef](#workingcookbook-chef11-10-search)
+ [Utilizzo di contenitori di dati](#workingcookbook-chef11-10-databag)
+ [Utilizzo di Berkshelf](#workingcookbook-chef11-10-berkshelf)

## Installazione e precedenza dei libri di ricette
<a name="workingcookbook-chef11-10-override"></a>

La procedura per installare i libri di cucina OpsWorks Stacks funziona in modo leggermente diverso per gli stack di Chef 11.10 rispetto alle versioni precedenti di Chef. Per gli stack Chef 11.10, dopo che OpsWorks Stacks ha installato i ricettari integrati, personalizzati e Berkshelf, li unisce in una directory comune nell'ordine seguente:

1. Libri di ricette predefiniti.

1. Libri di ricette di Berkshelf, se presenti.

1. Libri di ricette personalizzati, se presenti. 

Quando OpsWorks Stacks esegue questa unione, copia l'intero contenuto delle directory, comprese le ricette. Se sono presenti duplicati, vengono applicate le regole seguenti:
+ I contenuti dei libri di ricette di Berkshelf hanno la precedenza sui libri di ricette predefiniti.
+ I contenuti dei libri di ricette personalizzati hanno la precedenza sui libri di ricette di Berkshelf.

Per illustrare il funzionamento di questo processo, prendiamo in considerazione il seguente scenario, dove le tre directory di libri di ricette includono tutte un libro di ricette denominato `mycookbook`:
+ Libri di cucina integrati: `mycookbook` include un file di attributi denominato`someattributes.rb`, un file modello denominato e una ricetta `sometemplate.erb` denominata. `somerecipe.rb`
+ Libri di cucina Berkshelf: include e. `mycookbook` `sometemplate.erb` `somerecipe.rb`
+ Libri di cucina personalizzati: include. `mycookbook` `somerecipe.rb`

Il libro di ricette unito contiene i seguenti elementi:
+ `someattributes.rb` dal libro di ricette predefinito.
+ `sometemplate.erb` dal libro di ricette di Berkshelf.
+ `somerecipe.rb` dal libro di ricette personalizzato.

**Importante**  
Non devi personalizzare lo stack Chef 11.10 mediante la copia dell'intero libro di ricette predefinito nel tuo archivio e quindi mediante la modifica di alcune sue parti. In questo modo, sostituisci l'intero libro di ricette predefinito, comprese le ricette. Se OpsWorks Stacks aggiorna quel ricettario, il tuo stack non trarrà vantaggio da tali aggiornamenti a meno che non aggiorni manualmente la tua copia privata. Per ulteriori informazioni su come personalizzare gli stack, consulta [Personalizzazione degli stack OpsWorks](customizing.md).

## Utilizzo della ricerca di Chef
<a name="workingcookbook-chef11-10-search"></a>

Puoi utilizzare il [metodo `search`](http://docs.chef.io/dsl_recipe.html#search) di Chef nelle ricette per eseguire query sui dati dello stack. Usi la stessa sintassi del server Chef, ma OpsWorks Stacks ottiene i dati dall'oggetto nodo locale invece di interrogare un server Chef. Questi dati includono:
+ Gli [attributi di configurazione e distribuzione dello stack](workingstacks-json.md) dell'istanza.
+ Gli attributi ricavati dai file di attributi dei libri di ricette predefiniti e personalizzati dell'istanza.
+ Dati di sistema raccolti da Ohai.

Gli attributi di configurazione e distribuzione dello stack contengono la maggior parte delle informazioni che le ricette in genere ottengono tramite la ricerca, inclusi dati come nomi host e indirizzi IP per ogni istanza online dello stack. OpsWorks Stacks aggiorna questi attributi per ogni [evento del ciclo](workingcookbook-events.md) di vita, garantendo che riflettano accuratamente lo stato attuale dello stack. Ciò significa che spesso nello stack puoi utilizzare le ricette della community che dipendono dalla funzionalità di ricerca, senza alcuna modifica. Il metodo di ricerca restituisce i dati appropriati, derivati dagli attributi di configurazione e distribuzione dello stack, anziché da un server.

La limitazione principale di OpsWorks Stacks search è che gestisce solo i dati nell'oggetto del nodo locale, in particolare la configurazione dello stack e gli attributi di distribuzione. Per questo motivo, i seguenti tipi di dati potrebbero non essere disponibili tramite la ricerca:
+ Attributi definiti localmente su altre istanze.

  Se una ricetta definisce un attributo localmente, tali informazioni non vengono riportate al servizio OpsWorks Stacks, quindi non è possibile accedere a tali dati da altre istanze utilizzando la ricerca.
+ Attributi `deploy` personalizzati

  Puoi specificare dati JSON personalizzati quando [distribuisci un'app](workingapps-deploying.md); gli attributi corrispondenti vengono installati nelle istanze dello stack per tale distribuzione. Tuttavia, se esegui la distribuzione solo sulle istanze selezionate, gli attributi vengono installati solo su tali istanze. Le query relative agli attributi JSON personalizzati avranno esito negativo su tutte le altre istanze. Inoltre, gli attributi personalizzati vengono inclusi nei dati JSON di configurazione e distribuzione dello stack solo per la distribuzione specifica. Tali dati sono accessibili solo finché il successivo evento del ciclo di vita non installa un nuovo set di attributi di configurazione e distribuzione dello stack. Si noti che se [specifichi dati JSON personalizzati per lo stack](workingstacks-json.md), gli attributi vengono installati su ogni istanza per ogni evento del ciclo di vita, risultando così sempre accessibili tramite la ricerca.
+ Dati Ohai da altre istanze.

  Lo [strumento Ohai](http://docs.chef.io/resource_ohai.html) di Chef recupera una serie di dati di sistema su un'istanza e aggiunge tali dati all'oggetto nodo. Questi dati vengono archiviati in locale e non vengono restituiti al servizio OpsWorks Stacks. Pertanto, la ricerca non è in grado di accedere ai dati Ohai da altre istanze. Tuttavia, alcuni di questi dati potrebbero essere inclusi negli attributi di configurazione e distribuzione dello stack.
+ Istanze offline.

  Gli attributi di configurazione e distribuzione dello stack contengono i dati solo per le istanze online.

Il seguente segmento di ricetta mostra come recuperare l'indirizzo IP privato di un'istanza del livello PHP mediante la ricerca. 

```
appserver = search(:node, "role:php-app").first
Chef::Log.info("The private IP is '#{appserver[:private_ip]}'")
```

**Nota**  
Quando OpsWorks Stacks aggiunge gli attributi di configurazione e distribuzione dello stack all'oggetto nodo, crea effettivamente due set di attributi di livello, ciascuno con gli stessi dati. Un set si trova nel `layers` namespace, che è il modo in cui OpsWorks Stacks archivia i dati. L'altro set si trova nello spazio dei nomi `role` namespace, che è il modo in cui il server Chef archivia i dati equivalenti. Lo scopo del `role` namespace è consentire l'esecuzione del codice di ricerca implementato per il server Chef su un'istanza Stacks. OpsWorks Se stai scrivendo codice specifico per OpsWorks Stacks, puoi usare uno dei due `layers:php-app` o `role:php-app` l'esempio precedente e `search` restituiresti lo stesso risultato.

## Utilizzo di contenitori di dati
<a name="workingcookbook-chef11-10-databag"></a>

Puoi utilizzare il [metodo `data_bag_item`](http://docs.chef.io/dsl_recipe.html#data-bag-item) di Chef nelle ricette per eseguire query sulle informazioni incluse nei contenitori di dati. Puoi utilizzare la stessa sintassi valida per il server Chef. Tuttavia, OpsWorks Stacks recupera i dati dagli attributi di configurazione e distribuzione dello stack dell'istanza. Tuttavia, OpsWorks Stacks attualmente non supporta gli ambienti Chef, quindi `node.chef_environment` ritorna sempre. `_default`

Puoi creare un contenitore di dati utilizzando dati JSON personalizzati per aggiungere uno o più attributi all'attributo `[:opsworks][:data_bags]`. L'esempio seguente mostra il formato generale per la creazione di un contenitori di dati in formato JSON personalizzato.

**Nota**  
Non puoi creare un contenitore di dati mediante la sua aggiunta nell'archivio di libri di ricette. Devi utilizzare dati JSON personalizzati.

```
{
  "opsworks": {
    "data_bags": {
      "bag_name1": {
        "item_name1: {
          "key1" : “value1”,
          "key2" : “value2”,
          ...
        }
      },
      "bag_name2": {
        "item_name1": {
          "key1" : “value1”,
          "key2" : “value2”,
          ...
        }
      },
      ...
    }
  }
}
```

In genere [specifichi dati JSON personalizzati per lo stack](workingstacks-json.md). Questa operazione installa gli attributi personalizzati in ogni istanza per ciascun evento del ciclo di vita successivo. Puoi anche specificare dati JSON personalizzati quando distribuisci un'app, ma tali attributi vengono installati solo per la distribuzione specifica e potrebbero venire installati solo in un set selezionato di istanze. Per ulteriori informazioni, consulta [Distribuzione di app](workingapps-deploying.md).

Il seguente esempio di dati JSON personalizzati crea un contenitore di dati denominato `myapp`. Include un elemento, `mysql`, con due coppie chiave-valore.

```
{ "opsworks": {
    "data_bags": {
      "myapp": {
        "mysql": { 
          "username": "default-user",
          "password": "default-pass"
        }
      }
    }
  }
}
```

Per utilizzare i dati nella ricetta, puoi eseguire una chiamata a `data_bag_item` e passare i nomi del contenitore di dati e dei valori, come illustrato nel seguente segmento.

```
mything = data_bag_item("myapp", "mysql")
Chef::Log.info("The username is '#{mything['username']}' ")
```

Per modificare i dati nel contenitore di dati, è sufficiente modificare i dati JSON personalizzati. Questa operazione li installerà nelle istanze dello stack per il successivo evento del ciclo di vita. 

## Utilizzo di Berkshelf
<a name="workingcookbook-chef11-10-berkshelf"></a>

Con gli stack Chef 0.9 e Chef 11.4 puoi installare solo un archivio di libri di ricette personalizzati. Con gli stack Chef 11.10 puoi utilizzare [Berkshelf](http://berkshelf.com/) per gestire i libri di ricette e le relative dipendenze. Berkshelf ti consente inoltre di installare libri di ricette da più archivi. Per ulteriori informazioni, consulta [Creazione di pacchetti di dipendenze di libri di ricette a livello locale](best-practices-packaging-cookbooks-locally.md). In particolare, con Berkshelf, puoi installare libri di cucina della community OpsWorks compatibili con Stacks direttamente dai loro repository invece di doverli copiare nel tuo repository di libri di cucina personalizzato. Le versioni di Berkshelf supportate dipendono dal sistema operativo. Per ulteriori informazioni, consulta [OpsWorks Sistemi operativi impilati](workinginstances-os.md).

Per usare Berkshelf, devi abilitarlo in modo esplicito, come descritto in [Installazione di libri di ricette personalizzati](workingcookbook-installingcustom-enable.md). Devi quindi includere un file `Berksfile` nella directory principale dell'archivio di libri di ricette, in cui specifichi i libri di ricette da installare. 

Per specificare un'origine esterna di libri di ricette in un file Berksfile, all'inizio del file devi includere un attributo di origine che specifica l'URL dell'archivio predefinito. Berkshelf cercherà i libri di cucina nel codice sorgente a meno che tu non specifichi esplicitamente un repository. URLs Devi quindi includere una riga per ogni libro di ricette che vuoi installare usando il formato seguente: 

```
cookbook 'cookbook_name', ['>= cookbook_version'], [cookbook_options]
```

I campi dopo `cookbook` indicano il libro di ricette specifico.
+ *cookbook\$1name*— (Obbligatorio) Specificate il nome del libro di cucina.

  Se non includi altri campi, Berkshelf installa il ricettario dalla fonte specificata. URLs
+ *cookbook\$1version*— (Facoltativo) Specificate la versione o le versioni del libro di cucina.

  Puoi utilizzare un prefisso, ad esempio `=` o `>=`, per specificare una determinata versione o un intervallo di versioni accettabili. Se non specifichi una versione, Berkshelf installa la più versione recente.
+ *cookbook\$1options*— (Facoltativo) L'ultimo campo è un hash contenente una o più coppie chiave-valore che specificano opzioni come la posizione del repository.

  Ad esempio, puoi includere una chiave `git` per designare un determinato archivio Git e una chiave `tag` per designare un determinato ramo dell'archivio. Il metodo migliore per essere sicuro di installare il libro di ricette desiderato è specificare il ramo dell'archivio.

**Importante**  
Non dichiarare i libri di ricette includendo una riga `metadata` nel file Berksfile e dichiarando le dipendenze del libro di ricette in `metadata.rb`. Per garantirne il corretto funzionamento, entrambi i file devono trovarsi nella stessa directory. Con OpsWorks Stacks, il Berksfile deve trovarsi nella directory principale del repository, ma i file devono trovarsi nelle rispettive directory `metadata.rb` dei libri di cucina. È consigliabile invece dichiarare in modo esplicito i libri di ricette esterni nel file Berksfile.

Di seguito è riportato un esempio di file Berksfile che mostra diversi modi per specificare i libri di ricette. Per ulteriori informazioni su come creare un file Berksfile, consulta [Berkshelf](http://berkshelf.com/).

```
source "https://supermarket.chef.io"

cookbook 'apt'
cookbook 'bluepill', '>= 2.3.1'
cookbook 'ark', git: 'git://github.com/opscode-cookbooks/ark.git'
cookbook 'build-essential', '>= 1.4.2', git: 'git://github.com/opscode-cookbooks/build-essential.git', tag: 'v1.4.2'
```

Questo file installa i seguenti di libri di ricette:
+ La versione più recente di `apt` dall'archivio di libri di ricette della community.
+ La versione più recente di `bluepill` dai libri di ricette della community, purché la relativa versione sia 2.3.1 o successive.
+ La versione più recente di `ark` da un archivio specificato.

  L'URL di questo esempio si riferisce a un archivio pubblico di libri di cucina della comunità su GitHub, ma puoi installare libri di cucina da altri repository, inclusi gli archivi privati. Per ulteriori informazioni, consulta [Berkshelf](http://berkshelf.com/).
+ Il libro di ricette `build-essential` dal ramo v1.4.2 dell'archivio specificato.

Un archivio di libri di ricette personalizzati può contenere libri di ricette personalizzati e un file Berksfile. In tal caso, OpsWorks Stacks installa entrambi i set di libri di cucina, il che significa che un'istanza può avere fino a tre repository di libri di cucina. 
+ I libri di ricette predefiniti vengono installati in `/opt/aws/opsworks/current/cookbooks`.
+ Se l'archivio di libri di ricette personalizzati contiene libri di ricette, essi vengono installati in `/opt/aws/opsworks/current/site-cookbooks`.
+ Se hai abilitato Berkshelf e l'archivio di libri di ricette personalizzati include un file Berksfile, i libri di ricette specificati vengono installati in `/opt/aws/opsworks/current/berkshelf-cookbooks`.

[**I ricettari integrati e i ricettari personalizzati vengono installati su ogni istanza durante la configurazione e non vengono successivamente aggiornati a meno che non si esegua manualmente il comando Update Custom Cookbooks stack.**](workingstacks-commands.md) OpsWorks Stacks viene eseguito `berks install` per ogni esecuzione di Chef, quindi i tuoi libri di cucina Berkshelf vengono aggiornati per ogni evento del [ciclo](workingcookbook-events.md) di vita, secondo le seguenti regole: 
+ Se l'archivio include una nuova versione del libro di ricette, questa operazione aggiorna il libro di ricette dall'archivio.
+ In caso contrario, questa operazione aggiorna i libri di ricette di Berkshelf da una cache locale.

**Nota**  
L'operazione sovrascrive i libri di ricette di Berkshelf. Pertanto, se hai modificato le copie locali dei libri di ricette, le modifiche verranno sovrascritte. Per ulteriori informazioni, consulta [Berkshelf](http://berkshelf.com/).

Puoi anche aggiornare i libri di ricette di Berkshelf eseguendo il comando **Update Custom Cookbooks (Aggiorna libri di ricette personalizzati)** a livello di stack. Questa operazione aggiorna sia i libri di ricette di Berkshelf che quelli personalizzati.

# Implementazione delle ricette per gli stack Chef 11.4
<a name="workingcookbook-chef11-4"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/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](https://github.com/aws/opsworks-cookbooks)

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, OpsWorks Stacks installa gli [attributi di configurazione e distribuzione dello stack](workingcookbook-json.md) 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 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.

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 OpsWorks](customizing.md). Per ulteriori informazioni sulle directory di distribuzione, consulta [Ricette di ditribuzione](create-custom-deploy.md).

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](workingstacks-json.md). Le ricette potranno quindi accedere ai dati utilizzando la sintassi di nodo standard di Chef. Per ulteriori informazioni, consulta [Utilizzo di un JSON personalizzato](workingcookbook-json-override.md).

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](https://aws.amazon.com/documentation/sdkforruby/), installato su tutte le istanze OpsWorks Stacks, per scaricare i dati dal bucket. 

**Nota**  
Ogni istanza Stacks ha un profilo di istanza. OpsWorks Il [ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) 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](opsworks-security-appsrole.md).

# Migrazione di un stack Linux esistente in una nuova versione di Chef
<a name="workingcookbook-chef11-migrate"></a>

**Importante**  
Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato 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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Puoi utilizzare la console, l'API o la CLI di OpsWorks Stacks per migrare i tuoi stack Linux a una versione più recente di Chef. Le ricette potrebbero tuttavia richiedere qualche modifica per poter essere compatibili con la versione più recente. Durante la preparazione della migrazione di uno stack, tieni presente le seguenti considerazioni.
+ Non è possibile modificare le versioni OpsWorks dello stack di Stacks da Chef 11 a Chef 12 modificando o clonando lo stack. Non è possibile eseguire l'aggiornamento della versione principale di Chef utilizzando la procedura descritta in questa sezione. Per ulteriori informazioni sulla transizione da Chef 11.10 a Chef 12, consulta [Implementazione delle ricette: Chef 12](workingcookbook-chef12-linux.md).
+ La transizione da una versione di Chef a un'altra richiede un certo numero di modifiche, alcune delle quali di maggiore entità.

  Per ulteriori informazioni sulla transizione da Chef 0.9 a Chef 11.4, consulta [Migrazione in una nuova versione di Chef](#workingcookbook-chef11-migrate). Per ulteriori informazioni sulla transizione da Chef 11.4 a Chef 11.10, consulta [Implementazione delle ricette: Chef 11.10](workingcookbook-chef11-10.md). Per ulteriori informazioni sulla transizione da Chef 11.10 a Chef 12, consulta [Implementazione delle ricette: Chef 12](workingcookbook-chef12-linux.md).
+ Le esecuzioni di Chef utilizzano una versione di Ruby diversa sugli stack Chef 0.9 e Chef 11.4 (Ruby 1.8.7), sugli stack Chef 11.10 (Ruby 2.0.0) e sugli stack Chef 12 (Ruby 2.1.6).

  Per ulteriori informazioni, consulta [Versioni di Ruby](workingcookbook-ruby.md).
+ Gli stack Chef 11.10 gestiscono l'installazione dei libri di ricette in modo diversi rispetto agli stack Chef 0.9 o Chef 11.4.

  Questa differenza potrebbe causare problemi durante la migrazione degli stack che utilizzano libri di ricette personalizzati in Chef 11.10. Per ulteriori informazioni, consulta [Installazione e precedenza dei libri di ricette](workingcookbook-chef11-10.md#workingcookbook-chef11-10-override).

 Le seguenti linee guida sono consigliate per la migrazione di uno stack Chef in una versione più recente di Chef:

**Per eseguire la migrazione di uno stack in una versione più recente Chef**

1. [Clonare lo stack di produzione](workingstacks-cloning.md). Nella pagina **Clone Stack (Clona stack)**, fare clic su **Advanced>> (Avanzate>>)** per visualizzare la sezione **Configuration Management (Gestione configurazione** e modificare **Chef version (Versione Chef)** immettendo la versione più aggiornata.
**Nota**  
Se si sta utilizzando uno stack Chef 0.9, non è possibile effettuare l'aggiornamento direttamente a Chef 11.10; è necessario effettuare prima l'aggiornamento a Chef 11.4. Se si desidera migrare lo stack a Chef 11.10 prima del test delle ricette, attendere 20 minuti per l'esecuzione dell'aggiornamento e quindi effettuare l'aggiornamento dello stack da 11.4 a 11.10.

1. Aggiungere le istanze ai livelli e testare le applicazioni e i libri di ricette dello stack clonano sul sistema di test o temporaneo. Per ulteriori informazioni, consulta la pagina relativa a [Chef](https://docs.chef.io/index.html).

1. Quando i risultati del test sono soddisfacenti, procedere in uno dei seguenti modi:
   + Se questa è la versione desiderata di Chef, è possibile utilizzare lo stack clonato come stack di produzione oppure ripristinare la versione di Chef sullo stack di produzione. 
   + Se si esegue la migrazione di uno stack Chef 0.9 a Chef 11.10 in due fasi, ripetere il processo per migrare lo stack da Chef 11.4 a Chef 11.10.

**Nota**  
Quando si testano le ricette, è possibile [utilizzare SSH per connettersi all'](workinginstances-ssh.md)istanza e quindi utilizzare il comando run\$1command della [[CLI](agent-run.md) di Instance Agent](agent.md) per eseguire le ricette associate ai vari eventi del ciclo di vita. La CLI dell'agente risulta particolarmente utile per il test delle ricette di impostazione (Configurazione) perché è possibile utilizzarla anche se la configurazione ha esito negativo e l'istanza non raggiunge lo stato online. È inoltre possibile utilizzare il [comando Setup stack (Configura stack)](workingstacks-commands.md) per rieseguire le ricette di impostazione (Configurazione), ma tale comando è disponibile solo se la configurazione ha esito positivo e l'istanza è online. 

È possibile aggiornare uno stack in esecuzione a una nuova versione di Chef.

**Per aggiornare uno stack in esecuzione a una nuova versione di Chef**

1. [Modificare lo stack](workingstacks-edit.md) mediante la modifica dell'impostazione dell'opzione **Chef version (Versione di Chef)** per lo stack.

1. Salva le nuove impostazioni e attendi che OpsWorks Stacks aggiorni le istanze, operazione che in genere richiede 15-20 minuti.

**Importante**  
OpsWorks Stacks non sincronizza l'aggiornamento della versione di Chef con gli eventi del ciclo di vita. Se si desidera aggiornare la versione di Chef in uno stack di produzione, devi assicurarti che l'aggiornamento è stato completato prima del successivo [evento del ciclo di vita](workingcookbook-events.md). Se si verifica un evento, in genere un evento Deploy o Configure, l'agent dell'istanza aggiorna i libri di cucina personalizzati ed esegue le ricette assegnate all'evento, indipendentemente dal fatto che l'aggiornamento della versione sia completo o meno. Non esiste alcun modo diretto per determinare quando l'aggiornamento della versione è completato, se non controllare i log di distribuzione, dove viene inclusa la versione di Chef.

# Versioni di Ruby
<a name="workingcookbook-ruby"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Ruby è installato su tutte le istanze di uno stack Linux. OpsWorks Stacks installa un pacchetto Ruby su ogni istanza, che utilizza per eseguire le ricette di Chef e l'agent dell'istanza. OpsWorks Stacks determina la versione di Ruby in base alla versione di Chef in esecuzione nello stack. Non tentare di modificare questa versione; questo può disabilitare l'agente di istanza.

OpsWorks Stacks non installa un'applicazione Ruby eseguibile sugli stack di Windows. Il client Chef 12.2 viene fornito con Ruby 2.0.0 p451, ma l'eseguibile Ruby non viene aggiunto alla variabile di ambiente PATH delle istanze. Se vuoi usare questo eseguibile per l'esecuzione del codice Ruby, puoi trovarlo nel percorso `\opscode\chef\embedded\bin\ruby.exe` sul disco di Windows.

La OpsWorks tabella seguente riassume le versioni di Stacks Ruby. Le versioni disponibili dell'applicazione Ruby variano inoltre a seconda del sistema operativo dell'istanza. Per ulteriori informazioni, incluse le versioni delle patch disponibili, consulta [OpsWorks Sistemi operativi impilati](workinginstances-os.md).


| Versione di Chef | Versione di Ruby per Chef | Versioni applicazione Ruby disponibili | 
| --- | --- | --- | 
| 0.9 (c) | 1.8.7 | 1.8.7(a), 1.9.3(e), 2.0.0 | 
| 11.4 (c) | 1.8.7 | 1.8.7(a), 1.9.3(e), 2.0.0, 2.1, 2.2.0, 2.3 | 
| 11.10 | 2.0.0-p481 | 1.9.3(c, e), 2.0.0, 2.1, 2.2.0, 2.3, 2.6.1 | 
| 12 (b) | 2.1.6, 2.2.3 | Nessuna | 
| 12.22 (d) | 2.3.6 | Nessuno | 

**(a)** Non disponibile con Amazon Linux versione 2014.09 e successive, Red Hat Enterprise Linux (RHEL) o Ubuntu 14.04 LTS.

**(b)** Disponibile solo su stack Linux.

**(c)** Non disponibile con RHEL.

**(d)** Disponibile solo su stack Windows. La versione principale è 12.2. La versione corrente minore è 12.22.

**(e)** La definizione come obsoleto è completata; il supporto è terminato.

La posizione di installazione dipende dalla versione di Chef:
+ Le applicazioni utilizzano l'eseguibile `/usr/local/bin/ruby` per tutte le versioni di Chef.
+ Per Chef 0.9 e 11.4, l'agente di istanza e le ricette Chef utilizzano l'eseguibile `/usr/bin/ruby`.
+ Per Chef 11.10, l'agente di istanza e le ricette Chef utilizzano l'eseguibile `/opt/aws/opsworks/local/bin/ruby`. 

# Installazione di libri di ricette personalizzati
<a name="workingcookbook-installingcustom-enable"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Affinché uno stack installi e utilizzi i libri di ricette personalizzati, devi configurare lo stack in modo che vengano abilitati i libri di ricette personalizzati, se non hai già eseguito questa configurazione. Devi quindi fornire l'URL dell'archivio e qualsiasi altra informazione correlata, ad esempio una password.

**Importante**  
Dopo aver configurato lo stack per supportare libri di cucina personalizzati, OpsWorks Stacks installa automaticamente i tuoi libri di cucina su tutte le nuove istanze all'avvio. [**Tuttavia, devi indicare esplicitamente a OpsWorks Stacks di installare libri di cucina nuovi o aggiornati su tutte le istanze esistenti eseguendo il comando Update Custom Cookbooks stack.**](workingstacks-commands.md) Per ulteriori informazioni, consulta [Aggiornamento dei libri di ricette personalizzati](workingcookbook-installingcustom-enable-update.md). Prima di abilitare la funzionalità **Use custom Chef cookbooks (Utilizza i libri di ricette di Chef personalizzati)** sullo stack, assicurarsi che i libri di ricette personalizzati e della community eseguiti supportino la versione di Chef utilizzata dallo stack.

**Per configurare uno stack per i libri di ricette personalizzati**

1. Nella pagina dello stack fare clic su **Stack Settings (Impostazioni stack)** per visualizzare la pagina **Settings (Impostazioni)**. Fare clic su **Edit (Modifica)** per modificare le impostazioni.

1. Impostare **Use custom Chef Cookbooks (Utilizza i libri di ricette di Chef personalizzati)** su **Yes (Sì)**.  
![\[Modifica della pagina delle impostazioni dello stack\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/stack_settings_edit.png)

1. Configurare i libri di ricette personalizzati.

Al termine, fare clic su **Save (Salva)** per salvare lo stack aggiornato. 

## Specifica di un archivio di libri di ricette personalizzati
<a name="workingcookbook-installingcustom-enable-repo"></a>

Gli stack Linux possono installare libri di ricette personalizzati dai seguenti tipi di archivio:
+ Archivi HTTP o Amazon S3.

  Possono essere pubblici o privati, ma Amazon S3 è in genere l'opzione preferita per un archivio privato. 
+ Gli archivi Git e Subversion forniscono il controllo del codice sorgente e la possibilità di avere più versioni.

Gli stack di Windows possono installare libri di cucina personalizzati dagli archivi Amazon S3 e dai repository Git.

Tutti i tipi di archivio dispongono dei seguenti campi obbligatori.
+ Tipo di repository: il tipo di **repository**
+ **URL del repository: l'URL del repository**

OpsWorks Stacks supporta siti di repository Git ospitati pubblicamente come [GitHub](https://github.com/)o [Bitbucket](https://bitbucket.org), nonché server Git ospitati privatamente. Per gli archivi Git, devi utilizzare uno dei seguenti formati di URL, a seconda che l'archivio sia pubblico o privato. Utilizza le stesse linee guida per gli URL dei moduli secondari Git.

Per un archivio Git pubblico, utilizza i protocolli HTTPS o Git di sola lettura:
+ Git di sola lettura —. `git://github.com/amazonwebservices/opsworks-example-cookbooks.git`
+ HTTPS —. `https://github.com/amazonwebservices/opsworks-example-cookbooks.git`

Per un repository Git privato, è necessario utilizzare il read/write formato SSH, come mostrato negli esempi seguenti:
+ Archivi Github:. `git@github.com:project/repository`
+ Repository su un server Git — `user@server:project/repository`

Le restanti impostazioni variano a seconda del tipo di repository e sono descritte nelle seguenti sezioni.

### Archivio HTTP
<a name="workingcookbook-installingcustom-enable-repo-http"></a>

Selezionare **Http Archive (Archivio Http)** in **Repository type (Tipo di repository)** per visualizzare due impostazioni aggiuntive, che devono essere impostate se l'archivio è protetto mediante password.
+ **Nome utente: il tuo nome utente**
+ **Password: la tua password**

### Archivio Amazon S3
<a name="workingcookbook-installingcustom-enable-repo-s3"></a>

Selezionare **S3 Archive (Archivio S3)** in **Repository type (Tipo di repository)** per visualizzare le seguenti impostazioni aggiuntive opzionali. OpsWorks Gli stack possono accedere al tuo repository utilizzando EC2 i ruoli Amazon (autenticazione del gestore del sistema operativo host), indipendentemente dal fatto che utilizzi l'API OpsWorks Stacks o la console.
+ **ID chiave di accesso: un ID** della chiave di accesso AWS, ad esempioAKIAIOSFODNN7EXAMPLE.
+ Chiave di **accesso segreta: la chiave** di accesso segreta AWS corrispondente, ad esempiowJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

### Archivio Git
<a name="workingcookbook-installingcustom-enable-repo-git"></a>

Se selezioni **Git** in **Source Control (Controllo origine)** vengono visualizzate le seguenti impostazioni aggiuntive opzionali:

**Repository SSH key (Chiave SSH archivio)**  
Devi specificare una chiave SSH di distribuzione per accedere agli archivi Git privati. Per i moduli secondari Git, la chiave specificata deve avere accesso a tali moduli secondari. Per ulteriori informazioni, consulta [Utilizzo di chiavi SSH di repository Git](workingapps-deploykeys.md).  
La chiave SSH di distribuzione non può richiedere una password; OpsWorks Stacks non ha modo di passarla.

**Branch/Revision (Ramo/Versione)**  
Se il repository ha più rami, OpsWorks Stacks scarica il ramo principale per impostazione predefinita. Per specificare un ramo particolare, inserisci il nome del ramo, l' SHA1 hash o il nome del tag. Per specificare un determinato commit, immetti l'ID di commit completo a 40 cifre esadecimali.

### Archivio Subversion
<a name="workingcookbook-installingcustom-enable-repo-svn"></a>

Se selezioni **Subversion** in **Source Control (Controllo origine)** vengono visualizzate le seguenti impostazioni aggiuntive:
+ **Nome utente: il** tuo nome utente, per gli archivi privati.
+ **Password: la** tua password, per gli archivi privati.
+ **Revisione** — [Facoltativo] Il nome della revisione, se sono presenti più revisioni.

  Per specificare un ramo o un tag, devi modificare l'URL del repository, ad esempio: **http://repository\$1domain/repos/myapp/branches/my-apps-branch** o **http://repository\$1domain\$1name/repos/calc/myapp/my-apps-tag**.

# Aggiornamento dei libri di ricette personalizzati
<a name="workingcookbook-installingcustom-enable-update"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Quando fornisci a OpsWorks Stacks libri di cucina personalizzati, le ricette di installazione integrate creano una cache locale su ogni istanza appena avviata e scaricano i libri di cucina nella cache. OpsWorks Stacks esegue quindi le ricette dalla cache, non dal repository. Se modifichi i libri di cucina personalizzati nel repository, devi assicurarti che i libri di cucina aggiornati siano installati nelle cache locali delle tue istanze. OpsWorks Stacks distribuisce automaticamente i libri di cucina più recenti su nuove istanze quando vengono avviati. Per le istanze esistenti, tuttavia, la situazione è diversa: 
+ Devi distribuire manualmente i libri di ricette personalizzati aggiornati per le istanze online.
+ Non devi distribuire i libri di ricette personalizzati aggiornati per le istanze basate sugli instance store offline, tra cui istanze basate sul carico e sul tempo.

  OpsWorks Stacks distribuisce automaticamente i ricettari correnti al riavvio delle istanze. 
+ Devi avviare le istanze offline 24 ore su 24, 7 giorni su 7 supportate da EBS, le quali non sono basate sul carico o sul tempo.
+ Non puoi avviare le istanze offline supportate da EBS basate sul carico e sul tempo, perciò l'approccio più semplice è quello di eliminare le istanze offline e aggiungere nuove istanze per sostituirle.

  Poiché ora sono nuove istanze, OpsWorks Stacks distribuisce automaticamente gli attuali libri di cucina personalizzati all'avvio delle istanze.

**Per aggiornare manualmente i libri di ricette personalizzati**

1. Aggiorna il tuo repository con i libri di cucina modificati. OpsWorks Stacks utilizza l'URL della cache che hai fornito quando hai originariamente installato i libri di cucina, quindi il nome del file principale del libro di cucina, la posizione del repository e i diritti di accesso non devono cambiare. 
   + Per i repository Amazon S3 o HTTP, sostituisci il file.zip originale con un nuovo file.zip con lo stesso nome.
   + For gli archivi Git o Subversion, [modifica le impostazioni del tuo stack](workingstacks-edit.md) per modificare il campo **Branch/Revision (Ramo/Versione)** per la nuova versione.

1. Nella pagina dello stack, fai clic su **Run Command (Esegui comando)** e seleziona il comando **Update Custom Cookbooks (Aggiorna libri di ricette personalizzati)**.  
![\[Pagina del comando di esecuzione\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/update_cookbooks.png)

1. Se lo desideri, aggiungi un commento.

1. Facoltativamente, specifica un oggetto JSON personalizzato per il comando per aggiungere attributi personalizzati alla configurazione dello stack e agli attributi di distribuzione che Stacks installa sulle istanze. OpsWorks Per ulteriori informazioni, consultare [Utilizzo di un JSON personalizzato](workingstacks-json.md) e [Sostituzione degli attributi](workingcookbook-attributes.md).

1. Per impostazione predefinita, OpsWorks Stacks aggiorna i libri di cucina su ogni istanza. Per specificare quali istanze aggiornare, seleziona le istanze appropriate dall'elenco al termine della pagina. Per selezionare ogni istanza in un livello, seleziona la casella di controllo del livello appropriato dalla colonna a sinistra.

1. Fai clic su **Aggiorna libri di cucina personalizzati** per installare i ricettari aggiornati. OpsWorks Stacks elimina i libri di cucina personalizzati memorizzati nella cache nelle istanze specificate e installa i nuovi libri di cucina dal repository.

**Nota**  
Questa procedura è necessaria solo per le istanze esistenti, che dispongono di vecchie versioni dei libri di ricette nelle loro cache. Se successivamente aggiungi istanze a un layer, OpsWorks Stacks distribuisce i libri di cucina attualmente presenti nel repository in modo che ottengano automaticamente la versione più recente.

# Esecuzione di ricette
<a name="workingcookbook-executing"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

È possibile eseguire le ricette in due modi:
+ Automaticamente, assegnando le ricette all'evento del ciclo di vita del livello appropriato.
+ Manualmente, eseguendo il [comando dello stack Execute Recipes (Esegui ricette)](workingstacks-commands.md) oppure utilizzando l'interfaccia a riga di comando dell'agente.

**Topics**
+ [OpsWorks Eventi del ciclo di vita di Stacks](workingcookbook-events.md)
+ [Esecuzione automatica di ricette](workingcookbook-assigningcustom.md)
+ [Esecuzione manuale delle ricette](workingcookbook-manual.md)

# OpsWorks Eventi del ciclo di vita di Stacks
<a name="workingcookbook-events"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Ogni livello ha un set di cinque eventi del ciclo di vita, ognuno dei quali ha un set di ricette associato specifico per il livello. Quando si verifica un evento in un'istanza di un livello, OpsWorks Stacks esegue automaticamente il set di ricette appropriato. Per fornire una risposta personalizzata a questi eventi, implementa ricette personalizzate e [assegnale agli eventi appropriati](workingcookbook-assigningcustom.md) per ogni livello. OpsWorks Stacks esegue queste ricette dopo le ricette integrate dell'evento.

**Setup**  
Questo evento si verifica dopo che un'istanza avviata ha completato la procedura di avvio. È inoltre possibile attivare manualmente l'Setupevento utilizzando il comando [Setup stack](workingstacks-commands.md). OpsWorks Stacks esegue ricette che configurano l'istanza in base al relativo livello. Ad esempio, se l'istanza è un membro del livello Rails App Server, le Setup ricette installano Apache, Ruby Enterprise Edition, Passenger e Ruby on Rails.  
Un evento **Setup (Impostazione)** imposta un'istanza come fuori servizio. Poiché un'istanza non si trova nello stato **Online** quando viene eseguito l'evento del ciclo di vita **Setup (Impostazione)**, le istanze su cui esegui gli eventi **Setup (Impostazione)** vengono rimosse da un sistema di bilanciamento del carico.

**Configure**  
Questo evento si verifica su tutte le istanze dello stack in presenza di una delle condizioni seguenti:  
+ Un'istanza passa allo stato online o esce da tale stato.
+ Un [indirizzo IP elastico viene associato](resources-attach.md#resources-attach-eip) a un'istanza o ne [viene eliminata l'associazione da un'istanza](resources-detach.md#resources-detach-eip).
+ È possibile [collegare un sistema di bilanciamento del carico Elastic Load Balancing](layers-elb.md) a un layer o scollegarlo da un layer.
Ad esempio, supponiamo che lo stack contenga le istanze A, B e C e che tu inizi una nuova istanza, D. Dopo che D ha terminato l'esecuzione delle ricette di configurazione, OpsWorks Stacks attiva l'Configureevento su A, B, C e D. Se successivamente interrompi A, OpsWorks Stacks attiva l'Configureevento su B, C e D. OpsWorks Stacks risponde all'Configureevento eseguendo le Configure ricette di ogni livello, che aggiornano la configurazione delle istanze per riflettere la corrente set di istanze online. L'evento Configure rappresenta quindi una buona occasione per rigenerare i file di configurazione. Ad esempio, le HAProxy Configure ricette riconfigurano il load balancer per adattarsi a eventuali modifiche nel set di istanze dell'application server online.  
Puoi anche avviare manualmente l'evento Configure (Configurazione) utilizzando il [comando dello stack Configure (Configurazione)](workingstacks-commands.md).

**Deploy**  
Questo evento si verifica quando esegui un comando **Deploy (Distribuzione)**, in genere per distribuire un'applicazione in un set di istanze di server applicazioni. Le istanze eseguono le ricette che distribuiscono l'applicazione e i file correlati dal repository alle istanze del livello. Ad esempio, per le istanze Rails Application Server, le ricette Deploy consultano una determinata applicazione Ruby e comunicano a [Phusion Passenger ](https://www.phusionpassenger.com/) di ricaricarla. Puoi inoltre eseguire Deploy in altre istanze per permettere, ad esempio, di aggiornare la configurazione in base all'app appena distribuita.  
L'evento Setup (Impostazione) include Deploy (Distribuzione) ed esegue le ricette di Deploy (Distribuzione) al termine dell'impostazione.

**Undeploy**  
Questo evento si verifica quando elimini un'app o esegui un comando Undeploy per rimuovere un'app da un set di istanze server dell'applicazione. Le istanze specificate eseguono le ricette per rimuovere tutte le versioni delle applicazioni ed eseguire tutte le operazioni di pulizia richieste.

**Shutdown**  
Questo evento si verifica dopo aver ordinato a OpsWorks Stacks di chiudere un'istanza ma prima che l' EC2 istanza Amazon associata venga effettivamente terminata. OpsWorks Stacks esegue ricette per eseguire attività di pulizia come la chiusura dei servizi.  
 Se hai collegato un load balancer Elastic Load Balancing al layer e hai [abilitato il supporto per il drenaggio delle connessioni, OpsWorks Stacks attende il completamento del drenaggio](layers-elb.md) della connessione prima di attivare l'evento. Shutdown  
Dopo aver attivato un Shutdown evento, OpsWorks Stacks concede alle Shutdown ricette un determinato periodo di tempo per eseguire le proprie attività, quindi interrompe o chiude l'istanza Amazon. EC2 Il valore predefinito di timeout per Shutdown è di 120 secondi. Se le ricette Shutdown richiedono più tempo, puoi [modificare la configurazione del livello](workinglayers-basics-edit.md#workinglayers-basics-edit-general) per cambiare il valore di timeout. Per ulteriori informazioni sull'evento di un'istanza di tipo Shutdown, consulta [Arresto di un'istanza](workinginstances-starting.md#workinginstances-starting-stop).

**Nota**  
[Riavviando un'istanza](workinginstances-starting.md#workinginstances-starting-reboot) non si attivano eventi del ciclo di vita.

Per ulteriori informazioni sui comandi delle app Deploy e Undeploy consulta [Distribuzione di app](workingapps-deploying.md). 

Dopo che un'istanza avviata ha completato la procedura di avvio, la sequenza di avvio rimanente è la seguente:

1. OpsWorks Stacks esegue le Setup ricette integrate dell'istanza, seguite da eventuali ricette personalizzate. Setup

1. OpsWorks Stacks esegue le Deploy ricette integrate dell'istanza, seguite da eventuali ricette personalizzateDeploy.

   L'istanza è ora online.

1. OpsWorks Stacks attiva un Configure evento su tutte le istanze dello stack, inclusa l'istanza appena avviata.

   OpsWorks Stacks esegue le Configure ricette integrate delle istanze, seguite da eventuali ricette personalizzate. Configure

**Nota**  
Per visualizzare gli eventi del ciclo di vita che si sono verificati in una determinata istanza, passa alla pagina **Instances (Istanze)** e fai clic sul nome dell'istanza per aprire la relativa pagina dei dettagli. L'elenco di eventi si trova nella sezione **Logs (Log)** nella parte inferiore della pagina. Puoi fare clic su **show (mostra)** nella colonna **Log** per esaminare i log di Chef per un evento. Vengono fornite informazioni dettagliate su come è stato gestito l'evento, tra cui l'indicazione delle ricette eseguite. Per ulteriori informazioni su come interpretare i log di Chef, consulta [Log di Chef](troubleshoot-debug-log.md).

![\[Log entries showing commands, timestamps, and durations for system operations.\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/instance_logs.png)


Per ogni evento del ciclo di vita, OpsWorks Stacks installa un set di [attributi di configurazione e distribuzione dello stack](workingcookbook-json.md) su ogni istanza che contiene lo stato corrente dello stack e, in caso di eventi, informazioni sulla distribuzione. Deploy Gli attributi includono le informazioni sulle istanze disponibili, i loro indirizzi IP e così via. Per ulteriori informazioni, consulta [Attributi di configurazione e distribuzione dello stack](workingcookbook-json.md).

**Nota**  
L'avvio o l'arresto di un numero elevato di istanze nello stesso momento può generare la creazione di un numero elevato di eventi Configure. Per evitare elaborazioni non necessarie, OpsWorks Stacks risponde solo all'ultimo evento. Gli attributi di configurazione e distribuzione dello stack di tale evento contengono tutte le informazioni necessarie per aggiornare le istanze dello stack per l'intero set di modifiche. Ciò elimina la necessità di elaborare anche gli eventi precedentiConfigure. OpsWorks **Stacks etichetta gli Configure eventi non elaborati come sostituiti.**

# Esecuzione automatica di ricette
<a name="workingcookbook-assigningcustom"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Ogni livello ha un set di ricette predefinite assegnate a ogni evento del ciclo di vita, anche se alcuni livelli non includono le ricette di annullamento della distribuzione. Quando si verifica un evento del ciclo di vita su un'istanza, OpsWorks Stacks esegue il set di ricette appropriato per il layer associato.

Se hai installato libri di cucina personalizzati, puoi fare in modo che OpsWorks Stacks esegua automaticamente alcune o tutte le ricette assegnando ciascuna ricetta a un evento del ciclo di vita di un layer. Dopo che si è verificato un evento, OpsWorks Stacks esegue le ricette personalizzate specificate dopo le ricette integrate del layer. 

**Per assegnare ricette personalizzate agli eventi del livello**

1. Nella pagina **Layers (Livelli)**, per il livello appropriato, fare clic su **Recipes (Ricette)**, quindi fare clic su **Edit (Modifica)**. Se non sono ancora stati abilitati libri di ricette personalizzati, fare clic su **configure cookbooks (configura libri di ricette)** per aprire la pagina **Settings (Impostazioni)** dello stack. Impostare **Use custom Chef Cookbooks (Utilizza libri di ricette di Chef personalizzati)** su **Yes (Sì)** e fornire le informazioni sul repository del libro di ricette. Fare quindi clic su **Save (Salva)** e tornare alla pagina di modifica per la scheda **Recipes (Ricette)**. Per ulteriori informazioni, consulta [Installazione di libri di ricette personalizzati](workingcookbook-installingcustom-enable.md).

1. Nella scheda **Recipes (Ricette)** immettere ogni ricetta personalizzata nel campo dell'evento appropriato e fare clic su **\$1** per aggiungerla all'elenco. Specificate una ricetta come segue:*cookbook*: *somerecipe* (omettete l'`.rb`estensione).   
![\[Pagina dei dettagli del livello\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/php_edit.png)

Quando avvii una nuova istanza, OpsWorks Stacks esegue automaticamente le ricette personalizzate per ogni evento, dopo aver eseguito le ricette standard.

**Nota**  
Le ricette personalizzate vengono eseguite nell'ordine con cui vengono immesse nella console. In alternativa, per controllare l'ordine di esecuzione, è possibile implementare una meta-ricetta che esegue le ricette nell'ordine corretto.

# Esecuzione manuale delle ricette
<a name="workingcookbook-manual"></a>

**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](https://repost.aws/) o tramite Premium [AWS Support](https://aws.amazon.com/support).

Anche se le ricette in genere vengono eseguite automaticamente in risposta agli eventi del ciclo di vita, è possibile eseguirle manualmente in qualsiasi momento in tutte le istanze dello stack o in alcune di esse. Questa caratteristica viene in genere utilizzata per le attività non idonee per essere mappate a un evento del ciclo di vita, ad esempio il backup delle istanze. Per eseguire una ricetta personalizzata manualmente, è necessario che la ricetta si trovi in uno dei libri di ricette personalizzati, ma non è necessario che sia assegnata a un evento del ciclo di vita. Quando esegui una ricetta manualmente, OpsWorks Stacks installa gli stessi `deploy` attributi che utilizza per un evento Deploy.

**Per eseguire manualmente le ricette nelle istanze dello stack**

1. Nella pagina **Stack** fare clic su **Run command (Esegui comando)**. Per **Command (Comando)** selezionare **Execute Recipes (Esegui ricette)**.  
![\[Comando Execute Recipes (Esegui ricette) nella pagina Run command (Esegui comando)\]](http://docs.aws.amazon.com/it_it/opsworks/latest/userguide/images/execute_recipe.png)

1. Immettete le ricette da eseguire nella casella **Ricette da eseguire** utilizzando il formato standard*cookbookname*::. *recipename* Utilizzare le virgole per separare più ricette. Le ricette verranno eseguite nell'ordine in cui sono elencate.

1. Facoltativamente, utilizzare la casella **Custom Chef JSON (JSON Chef personalizzato)** per aggiungere un oggetto JSON personalizzato che definisce gli attributi personalizzati che verranno uniti agli attributi di configurazione e distribuzione dello stack installati nelle istanze. Per ulteriori informazioni sull'utilizzo di oggetti JSON personalizzati, consulta [Utilizzo di un JSON personalizzato](workingstacks-json.md) e [Sostituzione degli attributi](workingcookbook-attributes.md).

1. In **Istanze**, seleziona le istanze su cui OpsWorks Stacks deve eseguire le ricette. 

Quando si verifica un evento del ciclo di vita, l'agente OpsWorks Stacks riceve un comando per eseguire le ricette associate. È possibile eseguire manualmente questi comandi in una determinata istanza utilizzando il [comando dello stack](workingstacks-commands.md) appropriato oppure utilizzando il comando [run\$1command](agent-run.md) dell'interfaccia a riga di comando dell'agente. Per ulteriori informazioni su come utilizzare l'interfaccia a riga di comando dell'agente, consulta [OpsWorks CLI di Stacks Agent](agent.md).