Recetas de configuración - 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.

Recetas de configuración

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 o a través de Premium AWS Support.

Las recetas de configuración se asignan al evento Configure del ciclo de vida, que se produce en todas las instancias de la pila siempre que una instancia entra o sale del estado online. Las recetas de configuración se usan para ajustar la configuración de una instancia para responder a posibles cambios, según corresponda. Cuando implemente una receta de configuración, tenga en cuenta que el cambio en la configuración de la pila podría involucrar a instancias que no tienen nada que ver con esta capa. La receta debe ser capaz de responder adecuadamente, lo que podría suponer no hacer nada en algunos casos.

tomcat::configure

La receta tomcat::configure se destina a un evento Configure del ciclo de vida de la capa.

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

La receta tomcat::configure es básicamente una metarreceta que ejecuta dos recetas dependientes.

  1. La receta tomcat::context crea un archivo de configuración del contexto de la aplicación web.

    Este archivo configura los recursos de JDBC que las aplicaciones utilizan para comunicarse con la instancia de MySQL, tal y como se trata en la siguiente sección. La ejecución de esta receta en respuesta a un evento de configuración permite a la capa actualizar el archivo de configuración del contexto de la aplicación web, en caso de que la capa de base de datos haya cambiado.

  2. La receta de configuración tomcat::container_config se ejecuta de nuevo para capturar los cambios en la configuración de los contenedores.

include para tomcat::container_config aparece comentado en este ejemplo. Si desea utilizar JSON personalizado para modificar la configuración de Tomcat, puede eliminar el comentario. Un evento Configure del ciclo de vida ejecuta, a continuación, tomcat::container_config, que actualiza los archivos de configuración relacionados con Tomcat, tal y como se describe en tomcat::container_config, y reinicia el servicio de Tomcat.

tomcat::context

El recetario de Tomcat permite a las aplicaciones acceder a un servidor de bases de datos MySQL, que se puede ejecutar en una instancia independiente, mediante un objeto DataSourceJ2EE. Con Tomcat, puede activar la conexión creando e instalando un archivo de configuración del contexto de la aplicación web por cada aplicación. Este archivo define la relación entre la aplicación y el recurso JDBC que la aplicación utilizará para comunicarse con la base de datos. Para obtener más información, consulte The Context Container.

El principal objetivo de la receta tomcat::context es crear este archivo de configuración.

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

Además de los atributos del recetario de Tomcat, esta receta utiliza los atributos de configuración e implementación de la pila que AWS OpsWorks Stacks instala con el evento Configure. El servicio AWS OpsWorks Stacks agrega atributos al objeto de nodo de cada instancia que contienen la información que las recetas suelen obtener mediante bolsas de datos o búsquedas, e instala los atributos en cada instancia. Los atributos contienen información detallada sobre la configuración de la pila, las aplicaciones implementadas y aquellos datos personalizados que un usuario quiera incluir. Las recetas pueden obtener datos de los atributos de configuración e implementación de la pila utilizando la sintaxis de nodo de Chef estándar. Para obtener más información, consulte Atributos de configuración e implementación de pilas. Con las pilas de Chef 11.10, también puede utilizar la búsqueda de Chef para obtener los datos de configuración e implementación de la pila. Para obtener más información, consulte Uso de la búsqueda de Chef.

deploylos atributos hacen referencia al espacio de [:deploy] nombres, que contiene los atributos relacionados con la implementación que se definen a través de la consola o la API, o que se generan mediante el servicio Stacks. AWS OpsWorks El atributo deploy incluye un atributo por cada aplicación implementada, cuyo nombre es el nombre abreviado de la aplicación. Cada atributo de aplicación contiene un conjunto de atributos que caracterizan la aplicación, por ejemplo, la raíz de documentos ([:deploy][:appname][:document_root]).

La receta context garantiza, en primer lugar, que el servicio se defina para esta ejecución de Chef llamando a tomcat::service. A continuación, define una variable context_name que representa el nombre del archivo de configuración, sin la extensión .xml. Si utiliza la raíz de documentos de forma predeterminada, context_name se establece en el nombre abreviado de la aplicación. De lo contrario, se establece en la raíz de documentos especificada. En el ejemplo tratado en Crear una pila y ejecutar una aplicación se establece la raíz de documentos en "ROOT", de manera que el contexto es ROOT y el archivo de configuración se llama ROOT.xml.

La mayor parte de la receta recorre la lista de aplicaciones implementadas y utiliza con cada una la plantilla webapp_context.xml.erb para crear un archivo de configuración de contexto. En el ejemplo se implementa una única aplicación, pero la definición del atributo deploy requiere que se trate como una lista de aplicaciones independientemente.

La plantilla webapp_context.xml.erb no contiene ningún valor de configuración específico del sistema operativo, por lo que se encuentra en el subdirectorio templates del directorio default.

La receta crea el archivo de configuración de la manera siguiente:

  • Si se usan los valores de atributo predeterminados, el nombre de archivo de configuración se establece en context_name.xml y se instala en el directorio /etc/tomcat6/Catalina/localhost/.

    El nodo ['datasources'] de los atributos de configuración de la pila contiene uno o varios atributos, cada uno de los cuales asigna un nombre de contexto a los recursos de datos JDBC que la aplicación asociada va a utilizar para comunicarse con la base de datos. El nodo y su contenido se definen con JSON personalizado cuando se crea la pila, tal y como se describe más adelante en Crear una pila y ejecutar una aplicación. El ejemplo tiene un único atributo que asocia el nombre de contexto ROOT con un recurso JDBC llamado jdbc/mydb.

  • Si se usan los valores de atributo predeterminados, el usuario y el grupo del archivo se establecen en los valores que se definen en el paquete de Tomcat: tomcat (Amazon Linux) o tomcat6 (Ubuntu).

  • El recurso template crea el archivo de configuración solo si existe el nodo ['datasources'] e incluye un atributo context_name.

  • El recurso template define dos variables, resource_name y webapp_name.

    resource_name está establecido en el nombre del recurso que se asocia con context_name, y webapp_name está establecido en el nombre abreviado de la aplicación.

  • El recurso de plantilla reinicia el servicio de Tomcat para cargar y activar los cambios.

La plantilla webapp_context.xml.erb se compone de un elemento Context que contiene un elemento Resource con su propio conjunto de atributos.

Estos atributos Resource caracterizan la configuración del contexto:

  • name: el nombre del recurso de JDBC, que se establece en el valor resource_name definido en tomcat::context.

    En el ejemplo, el nombre del recurso está establecido en jdbc/mydb.

  • auth y tipo: estos son valores de configuración estándar para las conexiones DataSource de JDBC.

  • maxActive, maxIdle y maxWait: el número máximo de conexiones activas e inactivas, y el tiempo máximo de espera hasta que se devuelve una conexión.

  • username y password: la contraseña raíz y el nombre del usuario de la base de datos, que se obtienen de los atributos deploy.

  • driverClassName—El nombre de la clase del controlador JDBC, que se establece en el controlador MySQL.

  • url: la URL de conexión.

    El prefijo depende de la base de datos. Debe establecerse en jdbc:mysql para MySQL, jdbc:postgresql para Postgres, y en jdbc:sqlserver para SQL Server. En el ejemplo se establece la dirección URL en jdbc:mysql://host_IP_Address:3306:simplejsp, donde simplejsp es el nombre abreviado de la aplicación.

  • factory: el generador DataSource, necesario en las bases de datos MySQL.

Para obtener más información sobre este archivo de configuración, consulte el tema Uso de la wiki de Tomcat. DataSources