Есть ли способ подождать, пока ssh станет доступным на хосте, перед установкой роли? Есть wait_for_connection, но я только понял, как его использовать с задачами. Этот конкретный сценарий раскрутки ...

5
shellwhale 17 Дек 2020 в 20:39

1 ответ

Лучший ответ

Действия Ansible play начинаются с pre_tasks, затем roles, затем tasks и, наконец, post_tasks. Переместите задачу wait_for_connection как первую pre_tasks, и она будет блокировать все, пока соединение не станет доступным:

- hosts: all
  gather_facts: no

  become: true
  
  pre_tasks:
    - name: wait_for_connection # This one works
      wait_for_connection:
        delay: 5
        timeout: 600
  
  roles: ...
  
  tasks: ...

Для получения дополнительной информации о порядке выполнения см. этот заголовок в документации по роли (абзац непосредственно над примечаниями).

Примечание: вы, вероятно, захотите переместить все ваши текущие примеры задач в этот раздел, чтобы факты были собраны и установлены curl, прежде чем делать что-либо еще.

6
Zeitounator 17 Дек 2020 в 17:53