Spec-Zone.ru › Ansible 2.11

ansible.builtin.wait_for – Ожидание выполнения условия перед продолжением

Примечание

Этот модуль является частью ansible-base и включен во все установки Ansible. В большинстве случаев можно использовать короткое имя модуля wait_for даже без указания ключевого слова collections:. Несмотря на это, рекомендуется использовать полное имя класса (FQCN) для удобной ссылки на документацию модуля и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.

Добавлен в версии 0.7: of ansible.builtin

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Можно дождаться определённого количества времени timeout, это значение по умолчанию, если ничего не указано или указано только timeout. Это не приводит к ошибке.
  • Ожидание готовности порта полезно в тех случаях, когда службы не становятся доступными сразу после возврата их скриптов инициализации, что характерно для некоторых серверов приложений Java.
  • Он также полезен при запуске гостевых операционных систем с модулем community.libvirt.virt и необходимости приостановить выполнение, пока они не будут готовы.
  • Этот модуль также можно использовать для ожидания совпадения регулярного выражения со строкой в файле.
  • В Ansible 1.6 и более поздних версиях этот модуль также можно использовать для ожидания наличия или отсутствия файла в файловой системе.
  • В Ansible 1.8 и более поздних версиях этот модуль также можно использовать для ожидания закрытия активных соединений перед продолжением, что полезно, если узел выводится из пула балансировщиков нагрузки.
  • Для целей Windows используйте модуль ansible.windows.win_wait_for вместо этого.

Параметры

Параметр Выборы/Значения по умолчанию Комментарии
active_connection_states
список / элементы=строка
добавлен в версии 2.3 of ansible.builtin
По умолчанию:
["ESTABLISHED", "FIN_WAIT1", "FIN_WAIT2", "SYN_RECV", "SYN_SENT", "TIME_WAIT"]
Список состояний TCP-соединения, которые считаются активными соединениями.
connect_timeout
целое число
По умолчанию:
5
Максимальное время ожидания установления соединения в секундах перед закрытием и повторной попыткой.
delay
целое число
По умолчанию:
0
Количество секунд ожидания перед началом опроса.
exclude_hosts
список / элементы=строка
добавлен в версии 1.8 of ansible.builtin
Список узлов или IP-адресов, которые следует игнорировать при поиске активных TCP-соединений для состояния drained.
host
строка
По умолчанию:
"127.0.0.1"
Разрешимое имя хоста или IP-адрес для ожидания.
msg
строка
добавлен в версии 2.4 of ansible.builtin
Заменяет стандартное сообщение об ошибке при невозможности выполнения требуемых условий.
path
путь
добавлен в версии 1.4 of ansible.builtin
Путь к файлу в файловой системе, который должен существовать перед продолжением.
path и port — взаимно исключающие параметры.
port
целое число
Номер порта для опроса.
path и port — взаимно исключающие параметры.
search_regex
строка
добавлен в версии 1.4 of ansible.builtin
Может использоваться для сопоставления строки в файле или соединении сокета.
По умолчанию используется многострочное регулярное выражение.
sleep
целое число
добавлен в версии 2.3 of ansible.builtin
По умолчанию:
1
Количество секунд ожидания между проверками.
До Ansible 2.3 это значение было жёстко задано равным 1 секунде.
state
строка
    Выборы:
  • absent
  • drained
  • present
  • started ←
  • stopped
Либо present, started, или stopped, absent, или drained.
При проверке порта started обеспечит открытость порта, stopped проверит его закрытие, а drained проверит активные соединения.
При проверке файла или строки регулярного выражения present или started обеспечит наличие файла или строки перед продолжением, absent проверит отсутствие файла.
timeout
целое число
По умолчанию:
300
Максимальное время ожидания в секундах, при использовании с другим условием оно принудительно вызывает ошибку.
Если используется без других условий, это эквивалентно простому ожиданию.

Примечания

Примечание

  • Возможность использования search_regex с соединением по порту была добавлена в Ansible 1.7.
  • До Ansible 2.4 проверка отсутствия каталога или UNIX-соккета работала неправильно.
  • До Ansible 2.4 проверка наличия файла работала неправильно, если у удалённого пользователя не было прав на чтение этого файла.
  • В некоторых случаях при использовании обязательного управления доступом путь может всегда рассматриваться как отсутствующий, даже если он существует, но удалённый пользователь не может его ни изменить, ни создать.
  • При ожидании пути символьные ссылки будут следовать за ними. Многие другие модули, манипулирующие файлами, не следуют за символьными ссылками, поэтому операции с путём, используя другие модули, могут работать не так, как ожидается.

См. также

См. также

ansible.builtin.wait_for_connection

Официальная документация модуля ansible.builtin.wait_for_connection.

ansible.windows.win_wait_for

Официальная документация модуля ansible.windows.win_wait_for.

community.windows.win_wait_for_process

Официальная документация модуля community.windows.win_wait_for_process.

Примеры

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

- name: Wait for port 8000 to become open on the host, don't start checking for 10 seconds
  wait_for:
    port: 8000
    delay: 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: 8000
    delay: 10
    state: 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: 8000
    state: 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<task>\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: 22
    host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'
    search_regex: OpenSSH
    delay: 10
  connection: 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: 22
    host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'
    search_regex: OpenSSH
    delay: 10
  vars:
    ansible_connection: local

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
elapsed
целое число
всегда
Количество секунд, затраченное на ожидание

Пример:
23
match_groupdict
словарь
всегда
Словарь, содержащий все именованные подгруппы совпадения, с ключами — именами подгрупп, возвращаемый https://docs.python.org/2/library/re.html#re.MatchObject.groupdict

Пример:
{'group': 'match'}
match_groups
список / элементы=строка
всегда
Кортеж, содержащий все подгруппы совпадения, возвращаемый https://docs.python.org/2/library/re.html#re.MatchObject.groups

Пример:
['match 1', 'match 2']


Авторы

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

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/wait_for_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API