Ansible Academy · Урок

loop_control: label, index и pause

Управляйте выводом и поведением цикла

Урок 4 из 413 шагов

«loop_control: label, index и pause» — бесплатный урок Ansible Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 4 уроков всего.

Циклы могут создавать много лишнего вывода

Когда item — большой словарь, вывод показывает его целиком на каждой итерации. Ключевое слово loop_control наводит порядок в этом хаосе. 🧹

Добавьте loop_control

Разместите loop_control рядом с loop в той же задаче. Он содержит параметры, изменяющие поведение цикла и отображение его результатов.

- ansible.builtin.user:
    name: "{{ item.name }}"
  loop: "{{ users }}"
  loop_control:
    label: "{{ item.name }}"

label делает вывод понятнее

Параметр label задаёт содержимое строки для каждой итерации. Выводите только item.name вместо всего словаря, чтобы запуск было легче читать.

Переименование переменной цикла

Если во вложенных циклах используется item, переменные конфликтуют. Параметр loop_var переименовывает переменную, чтобы внешний и внутренний циклы оставались различимыми.

loop_control:
  loop_var: user_item

Отслеживание позиции с помощью index_var

Нужно узнать текущую позицию? index_var предоставляет счётчик, начинающийся с нуля, который можно вывести или использовать в условиях.

loop_control:
  index_var: idx

Использование индекса

Обращайтесь к index_var как к любой переменной. Он удобен для нумерации элементов или выполнения действия только на первой итерации.

- ansible.builtin.debug:
    msg: "{{ idx }}: {{ item }}"
  loop: "{{ servers }}"
  loop_control:
    index_var: idx

Замедление с помощью pause

Параметр pause ожидает заданное число секунд между итерациями. Это удобно при частых обращениях к API или к службе с ограничением частоты запросов.

loop_control:
  pause: 3

Отображение прогресса с помощью extended

Установите для extended значение true, и Ansible добавит сведения о цикле, например ansible_loop.index и ansible_loop.length, чтобы данные о прогрессе стали подробнее.

loop_control:
  extended: true

Вспомогательные поля ansible_loop

При включённом extended объект ansible_loop предоставляет first, last, index и revindex, поэтому легко определить начало или конец цикла.

when: ansible_loop.last

Объединение нескольких параметров

Вы можете объединить параметры в одном блоке loop_control: пользовательская метка, index_var и pause будут работать вместе.

loop_control:
  label: "{{ item.name }}"
  index_var: idx
  pause: 1

Управление, а не логика

loop_control управляет выводом и темпом выполнения, а не самими данными. Он делает большие циклы понятными и предсказуемыми, не изменяя их поведение.

Быстрая проверка

Какая опция loop_control управляет тем, что выводится для каждой итерации?

Итоги: управляемые циклы

Вы использовали loop_control для понятных меток, отслеживания индекса, пауз и расширенной информации. Теперь Вы умеете профессионально перебирать данные любой структуры. 🎉

Можно начать бесплатно

Изучай YAML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «loop_control: label, index и pause» бесплатный?

Да — полный текст урока «loop_control: label, index и pause» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.

Чему я научусь в уроке «loop_control: label, index и pause»?

Управляйте выводом и поведением цикла Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ansible Academy?

Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «loop_control: label, index и pause»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ansible Academy?

Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Ключевое слово loop для списка
  2. Циклы по словарям
  3. Вложенные циклы с subelements
  4. loop_control: label, index и pause
← Назад к Ansible Academy