

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Plantillas
<a name="workingcookbook-installingcustom-components-templates"></a>

**importante**  
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en [AWS Re:post](https://repost.aws/) o a través de Premium [AWS Support](https://aws.amazon.com/support).

Si crea un archivo de configuración y lo guarda en el directorio correcto, puede configurar muchos paquetes. Puede incluir un archivo de configuración en el libro de recetas y copiarlo en el directorio correspondiente, pero un enfoque más flexible es hacer que las recetas creen el archivo de configuración a partir de una plantilla. Una de las ventajas de las plantillas es que puede utilizar atributos para definir sus valores. Esto le permite, por ejemplo, utilizar un JSON personalizado que anule los valores de atributo adecuados para modificar un archivo de configuración sin tocar el libro de recetas.

Una plantilla tiene, básicamente, el mismo contenido y estructura que el archivo asociado. A continuación, se muestra un archivo de ejemplo: `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>
...
```

El siguiente ejemplo es el archivo `httpd.conf`, que se ha generado para una instancia de 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>
...
```

Gran parte del texto de la plantilla simplemente se copia de la plantilla en el archivo `httpd.conf`. Sin embargo, el contenido `<%= ... %>` se gestiona de la siguiente manera:
+ Chef sustituye `<%= node[:attribute][:sub_attribute][:...]%>` por el valor del atributo.

  Por ejemplo, `StartServers <%= node[:apache][:prefork][:startservers] %>` se convierte en `StartServers 16` en `httpd.conf`.
+ Puede utilizar `<%if-%>, <%else-%>, and <%end-%>` para seleccionar un valor de forma condicional.

  El ejemplo establece una ruta de archivo diferente para `accept.lock` en función de la plataforma.

**nota**  
No está limitado a los atributos de los archivos de atributos de los libros de recetas. Puede utilizar cualquier atributo del objeto de nodo de la instancia. Por ejemplo, generado por una herramienta de Chef llamada [Ohai](https://docs.chef.io/ohai.html), que también se añade el objeto de nodo. Para obtener más información sobre atributos, consulte [Anulación de atributos](workingcookbook-attributes.md).

Para obtener más información sobre las plantillas, incluido cómo incorporarlas al código de Ruby, consulte [Acerca de las plantillas](http://docs.chef.io/templates.html).