Spec-Zone.ru › Ansible

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

Примечание

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

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

Описание

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

Параметры

Параметр

Комментарии

active_connection_states

список / элементы=строка

Список состояний TCP-соединений, которые считаются активными подключениями.

По умолчанию: ["ESTABLISHED", "FIN_WAIT1", "FIN_WAIT2", "SYN_RECV", "SYN_SENT", "TIME_WAIT"]

connect_timeout

целое число

Максимальное количество секунд ожидания подключения перед закрытием и повторной попыткой.

По умолчанию: 5

delay

целое число

Количество секунд ожидания перед началом опроса.

По умолчанию: 0

exclude_hosts

список / элементы=строка

Список хостов или IP-адресов, которые нужно игнорировать при поиске активных TCP-соединений для состояния drained.

host

строка

Разрешимый хост или IP-адрес, для которого нужно дождаться.

По умолчанию: "127.0.0.1"

... ...
END_OF_DOCUMENT_MARKER

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Может работать в режиме check_mode и возвращать прогноз изменённого статуса без модификации целевого объекта, если не поддерживается, действие будет пропущено.

diff_mode

Поддержка: нет

Вернёт подробности о том, что изменилось (или, возможно, нужно изменить в режиме check_mode), когда в режиме diff.

platform

Платформа: posix

Целевые ОС/семейства, с которыми можно взаимодействовать

Примечания

Примечание

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

См. также

См. также

ansible.builtin.wait_for_connection

Ожидание, пока удалённая система станет доступна/используемой.

ansible.windows.win_wait_for

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

community.windows.win_wait_for_process

Ожидание существования или несуществования процесса перед продолжением.

Примеры

- name: Sleep for 300 seconds and continue with play
  ansible.builtin.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
  ansible.builtin.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
  ansible.builtin.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
  ansible.builtin.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
  ansible.builtin.wait_for:
    path: /tmp/foo

- name: Wait until the string "completed" is in the file /tmp/foo before continuing
  ansible.builtin.wait_for:
    path: /tmp/foo
    search_regex: completed

- name: Wait until regex pattern matches in the file /tmp/foo and print the matched group
  ansible.builtin.wait_for:
    path: /tmp/foo
    search_regex: completed (?P<task>\w+)
  register: waitfor
- ansible.builtin.debug:
    msg: Completed {{ waitfor['match_groupdict']['task'] }}

- name: Wait until the lock file is removed
  ansible.builtin.wait_for:
    path: /var/lock/file.lock
    state: absent

- name: Wait until the process is finished and pid was destroyed
  ansible.builtin.wait_for:
    path: /proc/3466/status
    state: absent

- name: Output customized message when failed
  ansible.builtin.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"
  ansible.builtin.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"
  ansible.builtin.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/3/library/re.html#re.MatchObject.groupdict

Возвращается: всегда

Пример: {"group": "match"}

match_groups

список / элементы=строка

Кортеж, содержащий все подгруппы совпадения, как возвращается https://docs.python.org/3/library/re.html#re.MatchObject.groups

Возвращается: всегда

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

Авторы

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

Ссылки на коллекции

  • Отслеживание проблем
  • Репозиторий (источники)
  • Связь

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

Spec-Zone.ru

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