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 existentes. 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
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
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, consulta 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
Para empezar, cree un libro de recetas personalizado.
Para crear el libro de recetas
-
En el directorio
opsworks_cookbooks
, cree un directorio de libro de recetas llamadoapache2
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. -
Cree un archivo
metadata.rb
con el siguiente contenido y guárdelo en el directorioapache2
.name "apache2" version "0.1.0"
-
En el directorio
apache2
, cree un directoriotemplates/default
.nota
El directorio
templates/default
funciona con instancias Amazon Linux, que utilizan la plantilla predeterminadaapache2.conf.erb
. Las instancias de Ubuntu 14.04 utilizan una plantillaapache2.conf.erb
específica del sistema operativo que se encuentra en el directoriotemplates/ubuntu-14.04
. Si desea aplicar la personalización solo a las instancias de Ubuntu 14.04, también debe anular esa plantilla. -
Copie la plantilla integrada
apache2.conf.erb
en el directorio templates/default
. Abra el archivo de plantilla, anule el comentario de la líneaErrorDocument 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 ... -
Cree un archivo
.zip
deopsworks_cookbooks
llamadoopsworks_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
-
Abra la consola de AWS OpsWorks Stacks
y, a continuación, elija Add Stack (Añadir pila). -
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 necesitas crear un par de EC2 claves de Amazon, consulta Amazon EC2 Key Pairs. 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.
-
-
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.
-
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.
-
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 deErrorDocument
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 ...