it-swarm.com.ru

приостановить ANSIBLE PlayBook для подтверждения пользователя, запускать ли остальные задачи

Я запускаю ansible-playbook, в котором есть много задач в списке. Все они используются для запуска по очереди, но я хочу pause playbook после определенных задач, чтобы спросить пользователя, хочет ли он продолжить выполнение остальных задач или выйти. Я видел pause module от ansible, но не смог увидеть ни одного примера, который спрашивал бы пользователей о да или нет, которые, в свою очередь, продолжали бы или выходили из ansible-playbook соответственно.

13
Ajeet Khan

Модуль pause фактически делает именно это. Но это не дает вам возможности ответить yes или no. Вместо этого он ожидает, что пользователь нажмет Ctrl+C а потом a для прерывания. Для продолжения пользователю просто необходимо нажать Enter,.

Поскольку это не совсем очевидно для пользователя, вы можете описать это в параметре Prompt.

- name: Exterminate mankind
  pause: Prompt='Please confirm you want to exterminate mankind! Press return to continue. Press Ctrl+c and then "a" to abort'
22
udondan

Хороший способ получить приглашение для каждой задачи без изменения самой книги воспроизведения - это использовать параметр --step команды ansible-playbook . Это позволит вам подтвердить каждый шаг перед его выполнением. У вас есть варианты здесь, чтобы выбрать (N)o/(y)es/(c)ontinue. N пропускает этот шаг, y запускает шаг, а c продолжает остальную часть книги воспроизведения без дальнейших подсказок (полезно, когда вы отлаживаете и после проблемного места.) Обратите внимание, что также хорошо работает с --check вариант.

Официальная документация Ansible находится здесь: https://docs.ansible.com/ansible/latest/user_guide/playbooks_startnstep.html#step

0
ernescz