

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

# Sostituzione dei modelli integrati
<a name="cookbooks-101-opsworks-templates"></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).

**Nota**  
Questo argomento si applica solo agli stack Linux. I modelli integrati sugli stack Windows non possono essere sostituiti.

Le ricette integrate di OpsWorks Stacks utilizzano modelli per creare file su istanze, principalmente file di configurazione per server, come Apache. Ad esempio, le ricette `apache2` utilizzano il modello [https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/apache2/templates/default/apache2.conf.erb](https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/apache2/templates/default/apache2.conf.erb) per creare il file di configurazione primario del server Apache, `httpd.conf` (Amazon Linux) o `apache2.conf` (Ubuntu). 

La maggior parte delle impostazioni di configurazione in questi modelli è rappresentata da attributi, pertanto il modo migliore per personalizzare un file di configurazione consiste nel sostituire gli attributi integrati appropriati. Per vedere un esempio, consulta [Sostituzione degli attributi integrati](cookbooks-101-opsworks-attributes.md). Tuttavia, se le impostazioni che desideri personalizzare non sono rappresentate da attributi integrati o non sono presenti nel modello, devi sostituire il modello stesso. In questo argomento viene descritto come sostituire un modello integrato per specificare un'impostazione di configurazione Apache personalizzata.

Puoi fornire risposte di errore personalizzate ad Apache aggiungendo impostazioni `ErrorDocument` al file `httpd.conf`. `apache2.conf.erb` contiene solo alcuni esempi commentati, come illustrato di seguito:

```
...
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
...
```

Poiché queste impostazioni sono commenti hardcoded, non puoi specificare valori personalizzati sostituendo attributi, ma devi sostituire il modello stesso. Tuttavia, diversamente da quanto avviene con gli attributi, non vi è alcun modo per sostituire parti specifiche di un file di modello. Devi creare un libro di ricette personalizzato con lo stesso nome della versione integrata, copiare il file di modello nella stessa sottodirectory e modificare il file in base alle esigenze. Questo argomento mostra come sostituire `apache2.conf.erb` per fornire una risposta personalizzata all'errore 500. Per una discussione generale sulla sostituzione dei modelli, consulta [Utilizzo di modelli personalizzati ](workingcookbook-template-override.md).

**Importante**  
Quando sostituisci un modello integrato, le ricette integrate utilizzano la tua versione personalizzata del modello anziché la versione integrata. Se OpsWorks Stacks aggiorna il modello integrato, il modello personalizzato non è sincronizzato e potrebbe non funzionare correttamente. OpsWorks Stacks non apporta tali modifiche spesso e, quando un modello cambia, OpsWorks Stacks elenca le modifiche e ti offre la possibilità di eseguire l'aggiornamento a una nuova versione. Ti consigliamo di monitorare il [repository OpsWorks Stacks](https://github.com/aws/opsworks-cookbooks) per scoprire le eventuali modifiche e aggiornare manualmente il modello personalizzato in base alle esigenze. Il repository include un ramo distinto per ciascuna versione Chef supportata, pertanto assicurati di essere nel ramo corretto.

Per iniziare, crea un libro di ricette personalizzato.

**Per creare il libro di ricette**

1. Nella directory `opsworks_cookbooks` creare la directory del libro di ricette denominata `apache2` e accedervi. Per ignorare i modelli integrati, il libro di ricette personalizzato deve avere lo stesso nome del libro di ricette integrato, `apache2` in questo esempio.
**Nota**  
Se hai già completato la procedura guidata [Sostituzione degli attributi integrati](cookbooks-101-opsworks-attributes.md), puoi utilizzare lo stesso libro di ricette `apache2` per questo esempio e saltare il Passaggio 2.

1. Creare un file `metadata.rb` con il seguente contenuto e salvarlo nella directory `apache2`.

   ```
   name "apache2"
   version "0.1.0"
   ```

1. Nella directory `apache2` creare una directory `templates/default`.
**Nota**  
La `templates/default` directory funziona per le istanze Amazon Linux, che utilizzano il `apache2.conf.erb` modello predefinito. Le istanze Ubuntu 14.04 utilizzano un modello `apache2.conf.erb` specifico del sistema operativo, che si trova nella directory `templates/ubuntu-14.04`. Se si desidera che la personalizzazione venga applicata alle istanze Ubuntu 14.04, inoltre, è necessario sovrascrivere anche tale modello.

1. Copiare il [modello `apache2.conf.erb` integrato](https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/apache2/templates/default/apache2.conf.erb) nella directory `templates/default`. Aprire il file modello, rimuovere i commenti della riga `ErrorDocument 500` e fornire un messaggio di errore personalizzato, come segue: 

   ```
   ...
   ErrorDocument 500 "A custom error message."
   #ErrorDocument 404 /missing.html
   ...
   ```

1. Crea un `.zip` archivio di `opsworks_cookbooks` named`opsworks_cookbooks.zip`, quindi carica il file in un bucket Amazon Simple Storage Service (Amazon S3). Per semplicità, [rendere pubblico l'archivio](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html). Registrare l'URL dell'archivio per utilizzarlo in seguito. Puoi anche archiviare i tuoi libri di cucina in un archivio privato di Amazon S3 o in altri tipi di repository. Per ulteriori informazioni, consulta [Repository dei libri di ricette](workingcookbook-installingcustom-repo.md).

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

**Nota**  
Per semplicità, questo esempio aggiunge un messaggio di errore hardcoded al modello. Per modificarlo, devi modificare il modello e [reinstallare il libro di ricette](workingcookbook-installingcustom-enable-update.md). Per usufruire di una maggiore flessibilità, puoi [definire un attributo personalizzato predefinito](cookbooks-101-opsworks-attributes.md) per la stringa di errore nel file degli attributi `customize.rb` del libro di ricette personalizzato e assegnare il valore di tale attributo a `ErrorDocument 500`. Ad esempio, se assegni un nome all'attributo `[:apache][:custom][:error500]`, la riga corrispondente in `apache2.conf.erb` sarà simile alla seguente:  

```
...
ErrorDocument 500 <%= node[:apache][:custom][:error500] %>
#ErrorDocument 404 /missing.html
...
```
Quindi puoi modificare il messaggio di errore personalizzato in qualsiasi momento sostituendo `[:apache][:custom][:error500]`. Se [utilizzi il JSON personalizzato per sostituire l'attributo](workingcookbook-json-override.md), non devi neanche toccare il libro di ricette.

Per utilizzare il modello personalizzato, creare uno stack e installare il libro di ricette.

**Per utilizzare il modello personalizzato**

1. Aprire la [console OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) e scegliere **Add Stack (Aggiungi stack)**.

1. Specificare le seguenti impostazioni standard:
   + **Nome:** ApacheTemplate
   + **Regione**: Stati Uniti occidentali (Oregon)
   + Chiave **SSH predefinita: una coppia di chiavi** Amazon Elastic Compute Cloud EC2 (Amazon)

     Se devi creare una coppia di EC2 chiavi Amazon, consulta [Amazon EC2 Key Pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). La coppia di chiavi deve appartenere alla stessa regione AWS dell'istanza.

   Scegliere **Advanced (Avanzate) >>**, scegliere **Use custom Chef cookbooks (Utilizza libri di ricette Chef personalizzati)** per specificare le impostazioni seguenti:
   + **Tipo di repository**: **Http** Archive
   + URL del **repository: l'URL** dell'archivio del libro di cucina che hai registrato in precedenza

   Accettare i valori predefiniti di altre impostazioni e scegliere **Add Stack (Aggiungi stack)** per creare lo stack.

1. **Scegliete Aggiungi un layer**, quindi [aggiungete un layer Java App Server allo](layers-java.md) stack con le impostazioni predefinite.

1. [Aggiungere un'istanza 24/7](workinginstances-add.md) con impostazioni predefinite al livello, quindi avviare l'istanza.

   Un'istanza t2.micro è sufficiente per questo esempio.

1. Una volta che l'istanza è online, [connettersi a essa con SSH](workinginstances-ssh.md). Il file `httpd.conf` è nella directory `/etc/httpd/conf`. Il file deve contenere la tua impostazione `ErrorDocument` personalizzata, che avrà un aspetto simile al seguente: 

   ```
   ...
   # Some examples:
   ErrorDocument 500 "A custom error message."
   #ErrorDocument 404 /missing.html
   #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
   #ErrorDocument 402 http://www.example.com/subscription_info.html
   ...
   ```