Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede utilizar el nombre corto del módulo wait_for incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que utilice el FQCN para facilitar la vinculación a la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

Nuevo en la versión 0.7: de ansible.builtin

  • Sinopsis
  • Parámetros
  • Notas
  • Ver también
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Puedes esperar un tiempo determinado timeout, este es el valor predeterminado si no se especifica nada o simplemente timeout está especificado. Esto no produce ningún error.
  • Esperar a que un puerto esté disponible es útil cuando los servicios no están disponibles inmediatamente después de que regresan sus scripts de inicio, que es true de determinados servidores de aplicaciones Java.
  • También es útil cuando se inicia a los invitados con el community.libvirt.virt módulo y necesitan hacer una pausa hasta que estén listos.
  • Este módulo también se puede utilizar para esperar a que una expresión regular coincida con una string estar presente en un archivo.
  • En Ansible 1.6 y posteriores, este módulo también se puede utilizar para esperar a que un archivo esté disponible o ausente en el sistema de archivos.
  • En Ansible 1.8 y versiones posteriores, este módulo también se puede usar para esperar a que se cierren las conexiones activas antes de continuar, lo que resulta útil si un nodo se está rotando fuera de un grupo de equilibradores de carga.
  • Para los destinos de Windows, use el ansible.windows.win_wait_for módulo en su lugar.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
active_connection_stateslista / elementos =string agregado en 2.3 de ansible.builtin Defecto:
[“ESTABLISHED”, “FIN_WAIT1”, “FIN_WAIT2”, “SYN_RECV”, “SYN_SENT”, “TIME_WAIT”]
La lista de estados de conexión TCP que se cuentan como conexiones activas.
connect_timeoutentero Defecto:
5
Número máximo de segundos para esperar a que se produzca una conexión antes de cerrar y volver a intentarlo.
demoraentero Defecto:
0
Número de segundos de espera antes de comenzar a sondear.
exclude_hostslista / elementos =string agregado en 1.8 de ansible.builtin Lista de hosts o IP que se deben ignorar al buscar conexiones TCP activas para drained estado.
anfitriónstring Defecto:
“127.0.0.1”
Un nombre de host que se puede resolver o una dirección IP para esperar.
msgstring agregado en 2.4 de ansible.builtin Esto anula el mensaje de error normal de una falla para cumplir con las condiciones requeridas.
senderosendero agregado en 1.4 de ansible.builtin Ruta a un archivo en el sistema de archivos que debe existir antes de continuar.path y port son parámetros mutuamente excluyentes.
Puertoentero Número de puerto para sondear.path y port son parámetros mutuamente excluyentes.
search_regexstring agregado en 1.4 de ansible.builtin Puede usarse para combinar un string en un archivo o en una conexión de socket. Por defecto es una expresión regular de varias líneas.
dormirentero agregado en 2.3 de ansible.builtin Defecto:
1
Número de segundos para dormir entre comprobaciones. Antes de Ansible 2.3, esto estaba codificado en 1 segundo.
estadostring
    Opciones:

  • ausente
  • agotado
  • regalo
  • empezado
  • interrumpido
Cualquiera present, started, o stopped, absent, o drained.Al comprobar un puerto started se asegurará de que el puerto esté abierto, stopped comprobará que está cerrado, drained comprobará si hay conexiones activas. string present o started se asegurará de que el archivo o string está presente antes de continuar, absent comprobará que el archivo está ausente o eliminado.
se acabó el tiempoentero Defecto:
300
Número máximo de segundos a esperar, cuando se usa con otra condición forzará un error. Cuando se usa sin otras condiciones es equivalente a simplemente dormir.

Notas

Nota

  • La capacidad de usar search_regex con una conexión de puerto se agregó en Ansible 1.7.
  • Antes de Ansible 2.4, las pruebas de ausencia de directorio o socket UNIX no funcionaban correctamente.
  • Antes de Ansible 2.4, la prueba de la presencia de un archivo no funcionaba correctamente si el usuario remoto no tenía acceso de lectura a ese archivo.
  • En algunas circunstancias, cuando se usa el control de acceso obligatorio, una ruta siempre puede tratarse como ausente incluso si existe, pero el usuario remoto tampoco puede modificarla ni crearla.
  • A la espera de una ruta, se seguirán enlaces simbólicos. Muchos otros módulos que manipulan archivos no siguen enlaces simbólicos, por lo que las operaciones en la ruta que utilizan otros módulos pueden no funcionar exactamente como se esperaba.

Ver también

Ver también

ansible.builtin.wait_for_connection

La documentación oficial sobre el ansible.builtin.wait_for_connection módulo.

ansible.windows.win_wait_for

La documentación oficial sobre el ansible.windows.win_wait_for módulo.

community.windows.win_wait_for_process

La documentación oficial sobre el community.windows.win_wait_for_process módulo.

Ejemplos de

-name: Sleep for 300 seconds and continue with play
  wait_for:timeout:300delegate_to: localhost

-name: Wait for port 8000 to become open on the host, don't start checking for 10 seconds
  wait_for:port:8000delay:10-name: Waits for port 8000 of any IP to close active connections, don't start checking for 10 seconds
  wait_for:host: 0.0.0.0
    port:8000delay:10state: drained

-name: Wait for port 8000 of any IP to close active connections, ignoring connections for specified hosts
  wait_for:host: 0.0.0.0
    port:8000state: drained
    exclude_hosts: 10.2.1.2,10.2.1.3

-name: Wait until the file /tmp/foo is present before continuing
  wait_for:path: /tmp/foo

-name: Wait until the string "completed" is in the file /tmp/foo before continuing
  wait_for:path: /tmp/foo
    search_regex: completed

-name: Wait until regex pattern matches in the file /tmp/foo and print the matched group
  wait_for:path: /tmp/foo
    search_regex: completed (?P>w+)
  register: waitfor
-debug:msg: Completed  waitfor['match_groupdict']['task']-name: Wait until the lock file is removed
  wait_for:path: /var/lock/file.lock
    state: absent

-name: Wait until the process is finished and pid was destroyed
  wait_for:path: /proc/3466/status
    state: absent

-name: Output customized message when failed
  wait_for:path: /tmp/foo
    state: present
    msg: Timeout to find file /tmp/foo

# Do not assume the inventory_hostname is resolvable and delay 10 seconds at start-name: Wait 300 seconds for port 22 to become open and contain "OpenSSH"
  wait_for:port:22host:' (ansible_ssh_host'search_regex: OpenSSH
    delay:10connection: local

# Same as above but you normally have ansible_connection set in inventory, which overrides 'connection'-name: Wait 300 seconds for port 22 to become open and contain "OpenSSH"
  wait_for:port:22host:'default(ansible_host))'search_regex: OpenSSH
    delay:10vars:ansible_connection: local

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
transcurridoentero siempre La cantidad de segundos que pasaron mientras esperaba.
Muestra:23
match_groupdictdiccionario siempre Diccionario que contiene todos los subgrupos nombrados de la coincidencia, codificados por el nombre del subgrupo, como lo devuelve https://docs.python.org/2/library/re.html#re.MatchObject.groupdict
Muestra:‘grupo’: ‘coincidencia’
match_groupslista / elementos =string siempre Tupla que contiene todos los subgrupos de la coincidencia según lo devuelto por https://docs.python.org/2/library/re.html#re.MatchObject.groups
Muestra:[‘match 1’, ‘match 2’]

Autores

  • Jeroen Hoekx (@jhoekx)
  • John Jarvis (@jarv)
  • Andrii Radyk (@AnderEnder)