Paso 14: Actualizar el libro de recetas para usar la iteració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.

Paso 14: Actualizar el libro de recetas para usar la iteració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 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.

Actualice el libro de recetas añadiendo una receta que utiliza la iteración, una técnica que repite el código de la receta múltiples veces. Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado.

Para actualizar el libro de recetas en la instancia y ejecutar la nueva receta
  1. En la estación de trabajo local, en el subdirectorio recipes del directorio opsworks_cookbook_demo, cree un archivo llamado iteration_demo.rb que contenga el siguiente código:

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") stack["custom_cookbooks_source"].each do |content| Chef::Log.info("********** '#{content}' **********") end
    nota

    Escribir el código de la receta anterior es más corto, más flexible y genera menos errores que escribir el siguiente código de receta que no emplea iteración:

    stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********") Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********") Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********") Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********") Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********") Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
  2. En la línea de comandos o terminal, utilice el comando tar para crear una nueva versión del archivo opsworks_cookbook_demo.tar.gz que contenga el directorio opsworks_cookbook_demo y su contenido actualizado.

  3. Cargue el archivo opsworks_cookbook_demo.tar.gz actualizado en el bucket de S3.

  4. Siga el procedimiento descrito en Paso 5: Actualizar el libro de recetas en la instancia y ejecutar la receta para actualizar el libro de recetas en la instancia y ejecutar la receta. En el procedimiento "To run the recipe" para Recipes to execute (Recetas para ejecutar), escriba opsworks_cookbook_demo::iteration_demo.

Para probar la receta
  1. Mientras se muestra la página Running command execute_recipes (Ejecutando comando execute_recipes) de los procedimientos anteriores, en cookbooks-demo1, en Log (Registro), elija show (mostrar). Se muestra la página del registro execute_recipes.

  2. Desplácese hacia abajo por el registro y busque entradas con un aspecto similar al siguiente:

    [2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "secret-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********

    Esta receta muestra mensajes en el registro del elemento bolsa de datos que incluye contenido variado. El elemento de bolsa de datos está en la bolsa de datos aws_opsworks_stack. El elemento de bolsa de datos tiene contenido denominado custom_cookbooks_source. Dentro de este contenido hay seis contenidos denominados type, url, username, password, ssh_key y revision; también se muestran sus valores.

En el siguiente paso, actualizará el libro de recetas para ejecutar el código de la receta solo si se cumplen determinadas condiciones.