

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

# Modelli
<a name="workingcookbook-installingcustom-components-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).

È possibile configurare molti pacchetti creando un file di configurazione e posizionandolo nella directory appropriata. È possibile includere un file di configurazione nel proprio libro di ricette e copiarlo nella directory appropriata, ma un approccio più flessibile è far creare alle proprie ricette il file di configurazione da un modello. Uno dei vantaggi di un modello è che è possibile utilizzare gli attributi per definire i valori del modello. In questo modo è possibile, per esempio, modificare un file di configurazione senza toccare il libro di cucina utilizzando JSON personalizzato per sostituire i valori di attributo appropriati.

Un modello ha essenzialmente lo stesso contenuto e la stessa struttura del file associato. Ecco un file di esempio, `httpd.conf`.

```
ServerRoot "<%= node[:apache][:dir] %>"
<% if node[:platform] == "debian" || node[:platform] == "ubuntu" -%>
  LockFile /var/lock/apache2/accept.lock
<% else -%>
   LockFile logs/accept.lock
<% end -%>
PidFile <%= node[:apache][:pid_file] %>
Timeout <%= node[:apache][:timeout] %>
KeepAlive <%= node[:apache][:keepalive] %>
MaxKeepAliveRequests <%= node[:apache][:keepaliverequests] %>
KeepAliveTimeout <%= node[:apache][:keepalivetimeout] %>
<IfModule mpm_prefork_module>
    StartServers          <%= node[:apache][:prefork][:startservers] %>
    MinSpareServers       <%= node[:apache][:prefork][:minspareservers] %>
    MaxSpareServers       <%= node[:apache][:prefork][:maxspareservers] %>
    ServerLimit           <%= node[:apache][:prefork][:serverlimit] %>
    MaxClients            <%= node[:apache][:prefork][:maxclients] %>
    MaxRequestsPerChild   <%= node[:apache][:prefork][:maxrequestsperchild] %>
</IfModule>
...
```

L'esempio seguente è il file `httpd.conf` che è stato generato per un'istanza Ubuntu:

```
ServerRoot "/etc/httpd"
LockFile logs/accept.lock
PidFile /var/run/httpd/httpd.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
    StartServers          16
    MinSpareServers       16
    MaxSpareServers       32
    ServerLimit           400
    MaxClients            400
    MaxRequestsPerChild   10000
</IfModule>
...
```

La maggior parte del testo del modello viene semplicemente copiata dal modello al file `httpd.conf`. Tuttavia, il contenuto `<%= ... %>` viene gestito come segue:
+ Chef sostituisce `<%= node[:attribute][:sub_attribute][:...]%>` con il valore dell'attributo.

  Per esempio, `StartServers <%= node[:apache][:prefork][:startservers] %>` diventa `StartServers 16` nel `httpd.conf`.
+ È possibile utilizzare `<%if-%>, <%else-%>, and <%end-%>` per selezionare un valore in base a condizioni.

  L'esempio imposta un percorso di file diverso per `accept.lock` a seconda della piattaforma.

**Nota**  
Non si è limitati agli attributi nei file di attributo del proprio libro di ricette. È possibile utilizzare qualsiasi attributo nell'oggetto nodo dell'istanza. Per esempio, generato da uno strumento Chef chiamato [Ohai](https://docs.chef.io/ohai.html) e anche integrato nell'oggetto nodo. Per ulteriori informazioni sugli attributi, consulta [Sostituzione degli attributi](workingcookbook-attributes.md).

Per ulteriori informazioni sui modelli e su come incorporare il codice Ruby, consulta [About Templates (Riguardo agli attributi)](http://docs.chef.io/templates.html).