0Pricing
DevOps Bootcamp · Урок

Группировка задач с 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 — локальная установка не требуется.

Все уроки этого курса

  1. Группировка задач с block
  2. Try / Catch с rescue и always
  3. Управление сбоями: failed_when и ignore_errors
  4. Пользовательские проверки с модулем fail
← Назад к DevOps Bootcamp