Я пытаюсь выполнить несколько задач на основе результата одной из задач в дочернем файле yml.
Поскольку зацикливание блоков невозможно, я включил все задачи в файл задач, включая этот дочерний файл из основной книги воспроизведения.
main.yml:
- hosts: host01
vars:
state: "running"
tasks:
- name: include tasks file
include_tasks: ./abc.yml
when: state == "running"
with_sequence: start=1 end=3
abc.yml:
- name: get the value from the system
shell: echo something
register: out
- name: override the variable state as completed
set_fact:
state: "completed"
when: out.rc == 0
Случай сбоя: поэтому здесь я должен перебирать файл включаемых задач до тех пор, пока не получу состояние «завершено» (попробуйте не более трех раз). Если не подведет Playbook.
успешный случай: если out.rc приводит к нулю, состояние переменной переопределяется как «завершено» в самой первой итерации, но все равно выполняется еще два раза вместо выхода.
Что мне здесь не хватает? или как-то иначе мы можем повторять несколько задач на основе вывода одной из задач?