loop_control: label, index и pause
Управляйте выводом и поведением цикла
«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 — локальная установка не требуется.
Все уроки этого курса
- Ключевое слово loop для списка
- Циклы по словарям
- Вложенные циклы с subelements
- loop_control: label, index и pause