Implementación de recetas para pilas de Chef 11.4 - 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.

Implementación de recetas para pilas de Chef 11.4

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.

importante

No reutilice los nombres de los libros de recetas integrados con libros personalizados o de la comunidad. Los libros de recetas personalizados que tienen el mismo nombre que los libros integrados podrían dar error. Para ver una lista completa de los libros de cocina integrados que están disponibles con las versiones Chef 11.10, 11.4 y 0.9, consulta el repositorio de libros de cocina opsworks-cookbooks en. GitHub

La principal limitación de las pilas de Chef 11.4 es que las recetas no pueden utilizar la búsqueda ni las bolsas de datos de Chef. Sin embargo, AWS OpsWorks Stacks instala los atributos de configuración e implementación de la pila en cada instancia que contienen gran parte de la información que se obtendría con la búsqueda, incluida la siguiente:

  • Datos definidos por el usuario desde la consola; por ejemplo, los nombres de aplicación o de host.

  • Los datos de configuración de la pila generados por el servicio AWS OpsWorks Stacks, como las capas, las aplicaciones y las instancias de la pila, y los detalles de cada instancia, como la dirección IP.

  • JSONAtributos personalizados que contienen datos proporcionados por el usuario y que pueden cumplir prácticamente el mismo propósito que los paquetes de datos.

AWS OpsWorks Stacks instala una versión actual de los atributos de configuración e implementación de la pila en cada instancia para cada evento del ciclo de vida, antes de iniciar la ejecución del evento en Chef. Los datos están disponibles para las recetas con la sintaxis node[:attribute][:child_attribute][...] estándar. Por ejemplo, los atributos de configuración e implementación de la pila incluyen el nombre de la pila, node[:opsworks][:stack][:name].

En el siguiente fragmento de una de las recetas integradas se obtiene el nombre de la pila y se utiliza para crear un archivo de configuración.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

Muchos de los valores de los atributos de implementación y configuración de la pila contienen varios atributos. Debe iterarlos para obtener la información que necesita. En el siguiente ejemplo, se muestra un extracto de los atributos de configuración y despliegue de la pila, que se representan como JSON objetos por motivos de comodidad. Contiene un atributo deploy de nivel superior que contiene, a su vez, un atributo por cada una de las aplicaciones de la pila, a las que se hace referencia con el nombre abreviado de la aplicación.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

Cada atributo de aplicación contiene un conjunto de atributos que la caracterizan. Por ejemplo, el atributo deploy_to representa el directorio de implementación de la aplicación. En el siguiente fragmento se establece el usuario, el grupo y la ruta de cada directorio de implementación de la aplicación.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

Para obtener más información sobre los atributos de configuración e implementación de la pila, consulte Personalización AWS OpsWorks de Stacks. Para obtener más información sobre los directorios de implementación, consulte Recetas de implementación.

Las pilas Chef 11.4 no admiten bolsas de datos, pero puede añadir datos arbitrarios a los atributos de configuración e implementación de la pila especificando los personalizados. JSON Las recetas podrán entonces obtener acceso a los datos utilizando la sintaxis de nodo de Chef estándar. Para obtener más información, consulte Uso de Custom JSON.

Si necesita la funcionalidad de una bolsa de datos cifrados, una opción es almacenar los atributos confidenciales en un lugar seguro, como un bucket privado de Amazon S3. Luego, tus recetas pueden usar AWSRuby SDK, que está instalado en todas las instancias de AWS OpsWorks Stacks, para descargar los datos del depósito.

nota

Cada instancia de AWS OpsWorks Stacks tiene un perfil de instancia. El IAMrol asociado especifica a qué AWS recursos pueden acceder las aplicaciones que se ejecutan en la instancia. Para que las recetas obtengan acceso a un bucket de Amazon S3, la política del rol debe incluir una declaración similar a la siguiente, que concede permiso para recuperar archivos de un bucket especificado.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

Para obtener más información acerca de los perfiles de instancia, consulte Especificación de permisos para aplicaciones que se ejecutan en EC2 instancias.