Отключение сбора фактов для ускорения
Пропускайте setup, когда факты не нужны.
«Отключение сбора фактов для ускорения» — бесплатный урок Ansible Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 4 уроков всего.
Факты не бесплатны
Сбор фактов означает дополнительный обмен данными с каждым узлом перед запуском задач. В больших парках машин это складывается в ощутимую потерю времени. 🌟
Когда они не нужны
Если play никогда не обращается к фактам, их сбор — напрасная работа. Вы можете безопасно отключить этот шаг для данного play.
Ключ gather_facts
Установите gather_facts в false на уровне play, и Ansible полностью пропустит шаг «Сбор фактов».
- hosts: web
gather_facts: falseПосмотрите разницу
Когда этот шаг отключён, в выводе play больше не отображается задача Сбор фактов. Ваши настоящие задачи начинаются сразу.
PLAY [web] *****
TASK [Install app] *****Глобальная настройка
Вы можете изменить значение по умолчанию для всех play в ansible.cfg, задав для gathering более интеллектуальный режим, например smart.
[defaults]
gathering = smartИнтеллектуальный сбор
Режим smart собирает факты один раз для каждого узла и повторно использует их, поэтому повторные play в одном запуске не выполняют новое исследование.
Сбор только части данных
Вместо того чтобы пропускать всё, сузьте область сбора. Параметр gather_subset собирает только те факты, которые Вы действительно используете.
- hosts: web
gather_subset:
- minСбор по требованию
Пропустили факты, но позже они понадобились? Добавьте задачу setup именно в нужном месте и соберите их в подходящий момент.
- ansible.builtin.setup:Отлично подходит для быстрых play
Небольшие play, которые лишь перезапускают службу или выполняют одну команду, редко обращаются к фактам. Отключение сбора делает их заметно быстрее.
Остерегайтесь неожиданностей
Если последующая задача незаметно зависит от факта, отключение сбора вызовет ошибку неопределённой переменной. Отключайте сбор, только если уверены.
Скорость или удобство
Сбор по умолчанию удобен, а его отключение меняет небольшое удобство на скорость. Выбирайте режим для каждого play с учётом его потребностей.
Быстрая проверка
Как остановить сбор фактов для play?
Повторение
Вы ускорили play, пропуская факты с помощью gather_facts: false, ограничивая сбор через gather_subset и выполняя его по требованию, когда это необходимо. ✨
Часто задаваемые вопросы
Урок «Отключение сбора фактов для ускорения» бесплатный?
Да — полный текст урока «Отключение сбора фактов для ускорения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.
Чему я научусь в уроке «Отключение сбора фактов для ускорения»?
Пропускайте setup, когда факты не нужны. Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ansible Academy?
Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Отключение сбора фактов для ускорения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ansible Academy?
Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое факты и зачем они нужны
- Исследование фактов с модулем setup
- Использование ansible_facts в задачах
- Отключение сбора фактов для ускорения