Если в одном Playbook прописано три задачи, сколько задач он обработает?

«Если в одном Playbook прописано три задачи, сколько задач он обработает?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Playbook обработает все три задачи последовательно, если они не имеют условий (when), тегов (tags) или других ограничений, которые могут исключить их выполнение.

Пример Playbook:

- name: Task 1
  ansible.builtin.debug:
    msg: "First task"

- name: Task 2
  ansible.builtin.debug:
    msg: "Second task"

- name: Task 3
  ansible.builtin.debug:
    msg: "Third task"

Ключевые моменты:

  • Последовательность: Задачи выполняются в порядке их объявления в плейбуке.
  • Фильтрация: Если запустить плейбук с флагами --tags или --skip-tags, будут выполнены только задачи с соответствующими тегами.
  • Условное выполнение: Задачи с условием when: false или условием, которое не выполняется в текущем контексте, будут пропущены.
  • Обработчики (handlers): Задачи, уведомляющие обработчики, выполняются в момент объявления, но сами обработчики запускаются один раз в конце плей, если были уведомлены.

Таким образом, по умолчанию и без фильтров выполнятся все три задачи.