Spec-Zone.ru › Ansible 2.10

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

Примечание

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

Новое в версии 0.7: 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 ansible.builtin
Значение по умолчанию:
["ESTABLISHED", "FIN_WAIT1", "FIN_WAIT2", "SYN_RECV", "SYN_SENT", "TIME_WAIT"]
Список состояний TCP-соединений, которые считаются активными подключениями.
connect_timeout
целое число
Значение по умолчанию:
5
Максимальное количество секунд ожидания подключения перед закрытием и повторной попыткой.
delay
целое число
Значение по умолчанию:
0
Количество секунд ожидания перед началом опроса.
exclude_hosts
список / элементы=строка
добавлен в 1.8 ansible.builtin
Список хостов или IP-адресов, которые нужно игнорировать при поиске активных TCP-соединений для состояния drained.
host
строка
Значение по умолчанию:
"127.0.0.1"
Разрешаемый хост или IP-адрес для ожидания.
msg
строка
добавлен в 2.4 ansible.builtin
Это переопределяет стандартное сообщение об ошибке при неудачном выполнении необходимых условий.
path
путь
добавлен в 1.4 ansible.builtin
Путь к файлу в файловой системе, который должен существовать перед продолжением.
path и port - взаимно исключающие параметры.
port
целое число
Номер порта для опроса.
path и port - взаимно исключающие параметры.
search_regex
строка
добавлен в 1.4 ansible.builtin
Может быть использован для сопоставления строки в файле или в соединении сокета.
По умолчанию используется многострочное регулярное выражение.
sleep
целое число
добавлен в 2.3 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/builtin/wait_for_module.html

Spec-Zone.ru

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