Plantillas - AWS OpsWorks

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

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 o a través de Premium AWS 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, que también se añade el objeto de nodo. Para obtener más información sobre atributos, consulte Anulación de atributos.

Para obtener más información sobre las plantillas, incluido cómo incorporarlas al código de Ruby, consulte Acerca de las plantillas.