Anulación de plantillas integradas - 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.

Anulación de plantillas integradas

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.

nota

Este tema se aplica únicamente a las pilas de Linux. No puede anular plantillas integradas en pilas de Windows.

Las recetas integradas de AWS OpsWorks Stacks utilizan plantillas para crear archivos en las instancias, principalmente archivos de configuración para servidores, como Apache. Por ejemplo, las recetas de apache2 utilizan la plantilla apache2.conf.erb para crear el archivo de configuración principal del servidor de Apache, httpd.conf (Amazon Linux) o apache2.conf (Ubuntu).

La mayoría de las opciones de configuración de estas plantillas están representadas por atributos, por lo que el método preferido para personalizar un archivo de configuración consiste en reemplazar los atributos integrados. Para ver un ejemplo, consulte Anulación de atributos integrados. No obstante, si la configuración que desea personalizar no está representada por atributos integrados, o no aparece en la plantilla, debe anular toda la plantilla. Este tema describe cómo anular una plantilla integrada para especificar una opción de configuración de Apache personalizada.

Puede añadir respuestas a errores personalizadas a Apache si añade configuración de ErrorDocument al archivo httpd.conf. apache2.conf.erb contiene únicamente algunos ejemplos comentados, como se muestra a continuación:

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

Como estas opciones de configuración son comentarios codificados, no puede anular los atributos para especificar valores personalizados; debe anular toda la plantilla. Sin embargo, al contrario que ocurre con los atributos, no se pueden anular determinados fragmentos de un archivo de plantilla. Debe crear un libro de recetas personalizado con el mismo nombre que la versión integrada, copiar el archivo de plantilla en el mismo subdirectorio y modificar el archivo según sea necesario. Este tema describe cómo anular apache2.conf.erb para proporcionar una respuesta personalizada al error 500. Para consultar un debate general sobre cómo anular plantillas, consulte Uso de plantillas personalizadas.

importante

Cuando anula una plantilla integrada, las recetas integradas utilizan la versión personalizada de la plantilla en lugar de la versión integrada. Si AWS OpsWorks Stacks actualiza la plantilla integrada, la plantilla personalizada se desincroniza y es posible que no funcione correctamente. AWS OpsWorks Stacks no realiza estos cambios con frecuencia y, cuando una plantilla cambia, AWS OpsWorks Stacks enumera los cambios y te da la opción de actualizarla a una nueva versión. Le recomendamos que monitorice el repositorio de AWS OpsWorks Stacks en busca de cambios y que actualice manualmente la plantilla personalizada según sea necesario. Tenga en cuenta que el repositorio tiene una ramificación independiente para cada versión de Chef compatible, así que asegúrese de que está en la ramificación correcta.

Para empezar, cree un libro de recetas personalizado.

Para crear el libro de recetas
  1. En el directorio opsworks_cookbooks, cree un directorio de libro de recetas llamado apache2 y, a continuación, ábralo. En este ejemplo, para anular las plantillas integradas, el libro de recetas personalizado debe tener el mismo nombre que el libro de recetas integrado: apache2.

    nota

    Si ya ha completado el tutorial Anulación de atributos integrados, puede utilizar el mismo libro de recetas apache2 en este ejemplo y omitir el Paso 2.

  2. Cree un archivo metadata.rb con el siguiente contenido y guárdelo en el directorio apache2.

    name "apache2" version "0.1.0"
  3. En el directorio apache2, cree un directorio templates/default.

    nota

    El directorio templates/default funciona con instancias Amazon Linux, que utilizan la plantilla predeterminada apache2.conf.erb. Las instancias de Ubuntu 14.04 utilizan una plantilla apache2.conf.erb específica del sistema operativo que se encuentra en el directorio templates/ubuntu-14.04. Si desea aplicar la personalización solo a las instancias de Ubuntu 14.04, también debe anular esa plantilla.

  4. Copie la plantilla integrada apache2.conf.erb en el directorio templates/default. Abra el archivo de plantilla, anule el comentario de la línea ErrorDocument 500 e introduzca un mensaje de error personalizado tal y como se indica a continuación:

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. Cree un archivo .zip de opsworks_cookbooks llamado opsworks_cookbooks.zip y, a continuación, cárguelo en un bucket de Amazon Simple Storage Service (Amazon S3). Para simplificar, publique el archivo. Anote la URL del archivo de almacenamiento; la necesitará más adelante. También puede almacenar los libros de recetas en un archivo de Amazon S3 privado, o en otros tipos de repositorios. Para obtener más información, consulte Repositorios de libros de recetas.

    El contenido entregado a los buckets de Amazon S3 puede contener contenido del cliente. Para obtener más información sobre la eliminación de información confidencial, consulte ¿Cómo puedo vaciar un bucket de S3? o ¿Cómo elimino un bucket de S3?.

nota

Para simplificar, este ejemplo añade un mensaje de error codificado a la plantilla. Para cambiarlo, debe modificar la plantilla y volver a instalar el libro de recetas. Si desea una mayor flexibilidad, puede definir un atributo personalizado predeterminado para la cadena de error en el archivo de atributos customize.rb del libro de recetas personalizado y asignar el valor de dicho atributo a ErrorDocument 500. Por ejemplo, si el nombre del atributo es [:apache][:custom][:error500], la línea correspondiente en apache2.conf.erb se parecerá a lo siguiente:

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

A continuación, anule [:apache][:custom][:error500] para cambiar el mensaje de error personalizado en cualquier momento. Si utiliza un JSON personalizado para anular el atributo, no necesita modificar el libro de recetas.

Para utilizar la plantilla personalizada, cree una pila e instale el libro de recetas.

Para utilizar la plantilla personalizada
  1. Abra la consola de AWS OpsWorks Stacks y, a continuación, elija Add Stack (Añadir pila).

  2. Especifique las siguientes opciones de configuración estándar:

    • Nombre: ApacheTemplate

    • Región: Oeste de EE. UU. (Oregón)

    • Clave SSH predeterminada: un par de claves de Amazon Elastic Compute Cloud (Amazon EC2)

      Si necesita crear un par de claves de Amazon EC2, consulte Pares de claves de Amazon EC2. Tenga en cuenta que el par de claves debe pertenecer a la misma región de AWS que la instancia.

    Elija Advanced>> (Avanzado) y Use custom Chef cookbooks (Usar libros de recetas de Chef personalizados) para especificar las opciones siguientes:

    • Tipo de repositorio: Archivo HTTP

    • URL de repositorio: la dirección URL del archivo del libro de recetas que anotó previamente

    Acepte los valores predeterminados del resto de opciones y, a continuación, elija Add Stack (Añadir pila) para crear la pila.

  3. Elija Agregar una capa y, a continuación, añada una capa del servidor de aplicaciones de Java a la pila con la configuración predeterminada.

  4. Añada una instancia de funcionamiento ininterrumpido con la configuración predeterminada a la capa y, a continuación, iníciela.

    Una instancia t2.micro es suficiente para este ejemplo.

  5. Cuando la instancia esté online, conéctese a ella a través de SSH. El archivo httpd.conf está en el directorio /etc/httpd/conf. El archivo debería contener la configuración de ErrorDocument personalizada, que debería parecerse a lo siguiente:

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