Группировка задач с block
Объединяйте задачи для общего поведения
«Группировка задач с block» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Задачи, которые нужно объединить
Некоторые задачи естественным образом образуют единое целое. Ключевое слово block группирует несколько задач, чтобы они могли совместно использовать настройки и поведение. 📦
Как выглядит block
block — это список задач, вложенных под одним ключом block. Они выполняются сверху вниз, как обычные задачи.
- name: Set up the app
block:
- name: Install package
ansible.builtin.package:
name: nginx
- name: Start service
ansible.builtin.service:
name: nginx
state: startedЗадайте директивы один раз
Директивы, заданные для block, применяются к каждой задаче внутри него. Задайте become или when один раз вместо повторения в каждой задаче.
- block:
- ansible.builtin.package:
name: nginx
- ansible.builtin.service:
name: nginx
state: started
become: trueОбщее условие when
Поместите when в блок, и Ansible применит его ко всем дочерним задачам. Вся группа будет либо запущена, либо пропущена.
- block:
- ansible.builtin.package:
name: httpd
- ansible.builtin.service:
name: httpd
state: started
when: ansible_os_family == "RedHat"Теги для всего блока
Тег блока помечает каждую задачу внутри него. Одна метка позволяет запустить или пропустить всю группу с помощью --tags.
- block:
- ansible.builtin.package:
name: nginx
tags:
- webserverБлоки можно именовать
Дайте блоку имя, чтобы сделать вывод понятнее. Имя появляется в журнале выполнения и обозначает содержащиеся в блоке задачи.
- name: Configure web server
block:
- ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.confБлоки — это не циклы
Блок группирует задачи, но не повторяет их. Чтобы запустить блок много раз, всё равно нужно организовать цикл для отдельных задач внутри него.
Наследование, а не переопределение
Директивы блока наследуются задачами. При этом задача может задать собственное условие when, которое объединяется с условием блока логическим and.
Вложенные блоки
Блоки могут содержать другие блоки. Вложенность позволяет точнее ограничивать область действия настроек, но делайте её небольшой, чтобы плейбук оставался понятным.
Главное преимущество: обработка ошибок
Группировка полезна, но блоки особенно хорошо работают вместе с rescue и always. Они превращают группу в конструкцию try и catch, о которой мы поговорим далее. 🛟
Где размещаются блоки
Блок находится в списке tasks плейбука — ровно там, где могла бы находиться отдельная задача. Везде, где допустима задача, допустим и блок.
Быстрая проверка
Давайте проверим, что делает block.
Итоги
Блок группирует задачи под одним ключом, чтобы они совместно использовали такие директивы, как become, when и tags, а также поддерживали обработку ошибок. ✅
Часто задаваемые вопросы
Урок «Группировка задач с block» бесплатный?
Да — полный текст урока «Группировка задач с block» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Группировка задач с block»?
Объединяйте задачи для общего поведения Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Группировка задач с block»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Группировка задач с block
- Try / Catch с rescue и always
- Управление сбоями: failed_when и ignore_errors
- Пользовательские проверки с модулем fail