Spec-Zone.ru › Ansible 2.9

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

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

Описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
active_connection_states
список
Значение по умолчанию:
["ESTABLISHED", "FIN_WAIT1", "FIN_WAIT2", "SYN_RECV", "SYN_SENT", "TIME_WAIT"]
Список состояний TCP-соединений, которые считаются активными соединениями.
connect_timeout
целое число
Значение по умолчанию:
5
Максимальное время ожидания подключения в секундах перед закрытием и повторной попыткой.
delay
целое число
Значение по умолчанию:
0
Количество секунд ожидания перед началом опроса.
exclude_hosts
список
Список узлов или IP-адресов, которые следует игнорировать при поиске активных TCP-соединений для состояния drained.
host
строка
Значение по умолчанию:
"127.0.0.1"
Разрешаемый домен или IP-адрес для ожидания.
msg
строка
добавлено в 2.4
Это переопределяет стандартное сообщение об ошибке при невозможности выполнения требуемых условий.
path
путь
Путь к файлу в файловой системе, который должен существовать перед продолжением.
path и port являются взаимоисключающими параметрами.
port
целое число
Номер порта для опроса.
path и port являются взаимоисключающими параметрами.
search_regex
строка
Может использоваться для поиска строки в файле или в соединении сокетов.
По умолчанию используется многострочное регулярное выражение.
sleep
целое число
Значение по умолчанию:
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 проверка наличия файла работала некорректно, если у удалённого пользователя не было прав на чтение этого файла.
  • В некоторых ситуациях при использовании обязательного контроля доступа путь может всегда считаться отсутствующим, даже если он существует, но не может быть изменён или создан удалённым пользователем.
  • При ожидании пути символические ссылки будут разрешаться. Многие другие модули, которые манипулируют файлами, не разрешают символические ссылки, поэтому операции с путём с использованием других модулей могут не работать так, как ожидалось.

См. также

См. также

wait_for_connection – Ожидание, пока удалённая система будет доступна/используема
Официальная документация модуля wait_for_connection.
win_wait_for – Ожидание условия перед продолжением
Официальная документация модуля win_wait_for.
win_wait_for_process – Ожидание существования или отсутствия процесса перед продолжением
Официальная документация модуля 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['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']


Статус

  • Этот модуль гарантированно поддерживает обратную совместимость при будущих изменениях. [stableinterface]
  • Этот модуль поддерживается командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat.

Авторы

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

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

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

Spec-Zone.ru

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