Spec-Zone.ru › Ansible 2.7

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

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Статус

Описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
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
Путь к файлу в файловой системе, который должен существовать перед продолжением.
path и port — взаимоисключающие параметры.
port
-
Номер порта для опроса.
path и 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-сокет не работала корректно.
  • До версии 2.4 проверка наличия файла не работала корректно, если удалённому пользователю не было предоставлено право чтения этого файла.
  • В некоторых случаях при использовании управления доступом по умолчанию, путь может всегда рассматриваться как отсутствующий, даже если он существует, но не может быть изменён или создан удалённым пользователем.
  • При ожидании пути, символические ссылки будут следовать за ними. Многие другие модули, которые манипулируют файлами, не следуют за символическими ссылками, поэтому операции с путём, используя другие модули, могут не работать точно так же, как ожидается.
  • Этот модуль также поддерживается для целевых систем Windows.
  • См. также wait_for_connection

Примеры

- 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 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]
  • Этот модуль поддерживается основной командой Ansible. [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.7/modules/wait_for_module.html

Spec-Zone.ru

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