Spec-Zone.ru › Ansible 2.6

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

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Статус
  • Техническое обслуживание
    • Поддержка
    • Автор

Обзор

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

Параметры

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

Примечания

Примечание

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

Примеры

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

- name: Wait 300 seconds for port 8000 to become open on the host, don't start checking for 10 seconds
  wait_for:
    port: 8000
    delay: 10

- name: Wait 300 seconds 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 300 seconds 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 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

# Don't 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

Статус

Этот модуль помечен как stableinterface, что означает, что авторы модуля гарантируют, что не будет внесено обратной совместимости с интерфейсом.

Техническое обслуживание

Этот модуль помечен как core, что означает, что его поддерживает Команда ядра Ansible. См. Поддержка модулей и техническое обслуживание для получения дополнительной информации.

Список других модулей, поддерживаемых командой ядра Ansible, см. в здесь.

Поддержка

Дополнительную информацию о поддержке этого модуля 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.6/modules/wait_for_module.html

Spec-Zone.ru

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