Ansible: ¿Cómo actualizar el inventario del host en tiempo de ejecución y agregar una pausa mientras se ejecuta Playbook?

Publicado: 2022-02-14

Cómo actualizar el inventario del host en tiempo de ejecución y agregar una pausa mientras se ejecuta Playbook

En Crunchify, hemos publicado tantos tutoriales sobre Ansible y este se centrará en How to Refresh Host Inventory en tiempo de ejecución y Add a Pause mientras se ejecutan tareas.

Consideremos este escenario simple de creación de VM de Amazon EC2:

  • Está ejecutando el script Ansible de Amazon EC2 que genera una VM y está capturando dinámicamente IP públicas en el script.
  • Durante la ejecución, está agregando la IP pública de esa VM al archivo de hosts en el grupo [crunchify] .
  • En la tarea posterior, use la IP pública recién agregada que se agregó al archivo de hosts e instale Java en ella.
  • Si no usa refresh_inventory , entonces no recogerá la IP recién agregada y verá el mismo error que se muestra a continuación.

Además, ¿tiene alguna de las siguientes preguntas?

  • Cómo recargar el dynamic inventory de Ansible
  • Pasos de actualización de inventario dinámico de Ansible
  • ¿Puedo actualizar el inventario de hosts y usar nuevos hosts en el same playbook ?
  • Ansible Dynamic Inventory no obtiene la información EC2 más reciente, ¿por qué?

Empecemos:

Paso 1

Siga completamente el tutorial sobre cómo spawn Amazon EC2 VM instance remotely using Ansible .

¿Cómo crear, iniciar y configurar una instancia de Amazon EC2 usando un simple Ansible Script? (generar VM de forma remota)

Paso 2

Busque una tarea a continuación en el archivo crunchify-ec2.yml .

Como puede ver aquí, después de crear Amazon EC2 VM , estamos capturando la IP pública de la VM y almacenándola en el archivo de hosts .

Si tiene algunas tareas adicionales en el mismo .yml file , las direcciones IP no se cargarán automáticamente. Simplemente agregue la siguiente línea a su Ansible Playbook y automáticamente actualizará toda su lista de inventario.

De la misma manera, si desea agregar espera, simplemente agregue la siguiente línea:

La etiqueta anterior introducirá una espera de un minuto en su libro de jugadas de Ansible.

Playbook de Ansible actualizado para Amazon EC2 con Wait y Meta Refresh

Playbook de Ansible actualizado para Amazon EC2 con Wait y Meta Refresh - Consejos de Crunchify

Aquí está mi prueba de muestra de Ansible Playbook:

Nombre del archivo: crunchify-refresh-hostfile-pause-1min.yml

Producción:

Simplemente ejecute su Ansible Playbook nuevamente y verá el resultado exitoso como se muestra a continuación.

Eso es todo. Felicidades. Ha ejecutado con éxito Ansible Playbook.

Si busca todos los tutoriales de Ansible, siga la página Archivo de Ansible.