Anulación de atributos integrados - 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 atributos integrados

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 atributos integrados en las pilas de Windows.

AWS OpsWorks Stacks instala un conjunto de libros de cocina integrados en cada instancia. Muchos libros de recetas integrados son compatibles con capas integradas y sus archivos de atributos definen una variedad de configuraciones de sistemas y aplicaciones predeterminadas, como la configuración del servidor de Apache. Al guardar estas configuraciones en archivos de atributo, puede personalizar muchas opciones de configuración mediante la anulación del atributo integrado correspondiente de cualquiera de las siguientes formas:

  • Definir el atributo en el JSON personalizado.

    Este enfoque es sencillo y flexible. No obstante, debe introducir el JSON personalizado manualmente, por lo que no constituye una forma robusta de administrar las definiciones de atributos.

  • Implementar un libro de recetas personalizado y definir el atributo en un archivo de atributos customize.rb.

    Este enfoque es menos flexible que utilizar un JSON personalizado, pero es más robusto ya que puede guardar los libros de recetas personalizados bajo el control de origen.

Este tema describe cómo utilizar el archivo de atributos de un libro de recetas personalizado para anular los atributos integrados utilizando el servidor de Apache como ejemplo. Para obtener más información sobre de cómo anular atributos con JSON personalizados, consulte Uso de un JSON personalizado. Para consultar un debate general sobre cómo anular atributos, consulte Anulación de atributos.

nota

La anulación de atributos es la forma preferida para personalizar las opciones de configuración, pero estas no siempre están representadas por atributos. En ese caso, a menudo puede personalizar el archivo de configuración anulando la plantilla que las recetas integradas utilizan para crear el archivo de configuración. Para ver un ejemplo, consulte Anulación de plantillas integradas.

Los atributos integrados suelen representar valores de los archivos de plantilla que las recetas de configuración utilizan para crear archivos de configuración. Por ejemplo, una de las recetas de configuración de apache2, default.rb, utiliza 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). El siguiente es un fragmento del archivo de plantilla:

... # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests <%= node[:apache][:keepaliverequests] %> # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout <%= node[:apache][:keepalivetimeout] %> ## ## Server-Pool Size Regulation (MPM specific) ## ...

En este ejemplo, la opción de configuración KeepAliveTimeout es el valor del atributo [:apache][:keepalivetimeout]. El valor predeterminado de este atributo se define en el archivo de atributos apache2apache.rb del libro de recetas de , tal y como se muestra en el siguiente fragmento:

... # General settings default[:apache][:listen_ports] = [ '80','443' ] default[:apache][:contact] = 'ops@example.com' default[:apache][:log_level] = 'info' default[:apache][:timeout] = 120 default[:apache][:keepalive] = 'Off' default[:apache][:keepaliverequests] = 100 default[:apache][:keepalivetimeout] = 3 ...
nota

Para obtener más información sobre los atributos integrados más utilizados, consulte Atributos integrados de los libros de recetas.

Para ayudar en la anulación de los atributos integrados, todos los libros de recetas integrados contienen un archivo de atributos customize.rb que se incorpora a todos los módulos mediante una directiva include_attribute. Los archivos customize.rb de los libros de recetas integrados no contienen definiciones de atributos y no afectan a los atributos integrados. Para anular los atributos integrados, debe crear un libro de recetas personalizado con el mismo nombre que el libro de recetas integrado y guardar las definiciones de atributo personalizadas en archivo de atributos que también se llame customize.rb. Este archivo prevalece sobre la versión integrada y se incluye en cualquier módulo relacionado. Si define los atributos integrados de customize.rb, se anulan los atributos integrados correspondientes.

Este ejemplo muestra cómo anular el atributo integrado [:apache][:keepalivetimeout] para definir su valor en 5 en lugar de 3. Puede utilizar un enfoque similar en el caso de los atributos integrados. Sin embargo, tenga cuidado con los atributos que anula. Por ejemplo, anular los atributos del espacio de nombres opsworks puede causar problemas en algunas recetas integradas.

importante

No modifique una copia del archivo de atributos integrados para anular los atributos integrados. Por ejemplo, podría guardar una copia de apache.rb en la carpeta apache2/attributes del libro de recetas personalizado y modificar algunas de sus opciones de configuración. Sin embargo, este archivo prevalece sobre la versión integrada y las recetas integradas ahora utilizarán esa versión de apache.rb. Si AWS OpsWorks Stacks modifica posteriormente el apache.rb archivo integrado, las recetas no obtendrán los nuevos valores a menos que actualices tu versión manualmente. Al usarlocustomize.rb, solo anulas los atributos especificados; las recetas integradas siguen obteniendo automáticamente up-to-date valores para cada atributo que no hayas anulado.

Para empezar, cree un libro de recetas personalizado.

Para crear el libro de recetas
  1. Cree un directorio en el directorio opsworks_cookbooks llamado apache2 y ábralo.

    En este ejemplo, para anular los atributos integrados, el libro de recetas personalizado debe tener el mismo nombre que el libro de recetas integrado: apache2.

  2. En el directorio apache2, cree un directorio attributes.

  3. Añada un archivo llamado customize.rb al directorio attributes y utilícelo para definir los atributos del libro de recetas integrado que desea reemplazar. En este ejemplo, el archivo debería incluir lo siguiente:

    normal[:apache][:keepalivetimeout] = 5
    importante

    Para anular un atributo integrado, un atributo personalizado debe ser de tipo normal o superior y tener exactamente el mismo nombre de nodo que el atributo integrado correspondiente. El tipo normal garantiza que el atributo personalizado prevalece sobre los atributos integrados, que son todos del tipo default. Para obtener más información, consulte Prioridad de los atributos.

  4. Cree un archivo .zip de opsworks_cookbooks llamado opsworks_cookbooks.zip y cárguelo en un bucket de Amazon Simple Storage Service (Amazon S3). Para simplificar, publique el archivo. Anote su dirección URL; 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?.

Para utilizar el atributo personalizado, cree una pila e instale el libro de recetas.

Para utilizar el atributo personalizado
  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 — ApacheConfig

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

      Puede guardar la pila en cualquier región, pero recomendamos usar Oeste de EE. UU. (Oregón) en los tutoriales.

    • Clave SSH predeterminada: un par de claves de EC2

      Si necesita crear un par de claves de 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 pila.

    Elija Advanced>> (Avanzado), configure Use custom Chef cookbooks (Usar libros de recetas de Chef personalizados) en Yes (Sí) y, a continuación, especifique 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.

    nota

    Este ejemplo utiliza el sistema operativo predeterminado, Amazon Linux, pero puede utilizar Ubuntu si lo prefiere. La única diferencia es que en los sistemas Ubuntu, la receta de instalación integrada genera un archivo de configuración llamado apache2.conf con la misma configuración y lo guarda en el directorio /etc/apache2.

  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. Si revisa el archivo, debería ver la opción de configuración personalizada KeepAliveTimeout. El resto de opciones tendrán los valores predeterminados del archivo integrado apache.rb. La parte correspondiente de httpd.conf debería parecerse a lo siguiente:

    ... # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 5 ...