У меня есть два пьесы, каждая из которых выполняет одно задание.
При первом воспроизведении проверяется, существует ли /var/test.dat
на каждой цели. Только если первая игра прошла успешно, я хочу запустить вторую игру, которая выполняет эти сценарии параллельно.
Если первая игра не удалась, т.е. test.dat не существует, я буду sh завершать игру без выполнения второй пьесы. Для этой цели я установил any_errors_fatal
в значение true
Мне нужно, чтобы ansible Play strategy
был установлен как свободный, поскольку для выполнения каждого из сценариев требуется 30 минут.
Мое понимание ansible ограничено.
Я понимаю, что если у меня есть обе задачи в одном PLAY и я настроил стратегию освобождения, обе задачи будут выполняться параллельно, чего я не хочу.
---
- name: Play 1- check for login and script
hosts: all_hosts
any_errors_fatal: true
strategy: free
tasks:
- name: Check script existence
shell: "ls /var/test.dat"
register: checkscript
- name:
fail:
msg: "script {{ scriptdet }} missing on {{ inventory_hostname }}"
when: checkscript.rc != 0
- name: Play 2- Run scripts
hosts: all_hosts
user: "{{ USER }}"
strategy: free
tasks:
- name: Execute backup script
shell: "{{ scriptdet }}"
args:
chdir: ~/..
I попробовал описанную выше книгу, но я вижу, что вторая игра выполняется, несмотря на то, что задача первой игры не выполнена.
Подскажите, пожалуйста, как мне заставить это работать?