Кэширование и несколько источников инвентаря
Объединяйте большие инвентари и ускоряйте их обработку
«Кэширование и несколько источников инвентаря» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Запросы отнимают время
Обращение к облачному API при каждом запуске становится медленным, если у вас сотни узлов. При каждом запуске сценария приходится снова платить за этот поиск. ⏱️
Кэшируйте результаты
Кэширование инвентаря сохраняет полученные данные об узлах, чтобы повторные запуски использовали их вместо нового запроса к облаку.
Включите кэширование
Включите его в конфигурации плагина или ansible.cfg, установив ключ cache в значение true.
cache: true
cache_plugin: jsonfileВыберите хранилище кэша
Параметр cache_plugin выбирает место хранения данных: например, jsonfile на диске или redis для общего и более быстрого хранилища на нескольких машинах.
Задайте разумное время ожидания
Параметр cache_timeout, указанный в секундах, определяет, как долго кэшированные данные считаются действительными, прежде чем Ansible обновит их из источника.
cache_timeout: 3600Устаревший кэш — это ловушка
Большое время ожидания ускоряет работу, но повышает риск. Если экземпляры изменились, вы можете обратиться к уже несуществующим узлам. Подберите баланс между скоростью и актуальностью данных для своего парка.
Объединяйте несколько источников
Обычно источник бывает не один. Укажите -i каталог, и Ansible загрузит каждый файл инвентаря внутри него.
ansible-playbook -i inventories/ site.ymlИсточники объединяются
Узлы и группы из всех файлов объединяются в один инвентарь, поэтому AWS, Azure и статический файл могут сосуществовать в одном запуске.
Порядок влияет на переменные
Файлы загружаются в алфавитном порядке. Если два источника задают одну и ту же переменную узла, побеждает более поздний источник, поэтому порядок имён имеет значение.
Сочетайте статический и динамический инвентарь
Статический файл может закрепить специальный узел, а плагин загрузить остальные, обеспечивая фиксированные опорные узлы наряду с эластичными узлами, обнаруженными автоматически.
Проверьте объединённое представление
Запустите ansible-inventory для этого каталога, чтобы увидеть итоговый объединённый граф и убедиться, что каждый источник добавил ожидаемые данные.
ansible-inventory -i inventories/ --graphБыстрая проверка
Вспомните, как объединить источники инвентаря.
Итоги
Используйте кэширование с хранилищем и временем ожидания, чтобы сократить число обращений к API, а параметр -i направьте на каталог для объединения нескольких источников инвентаря. 💾
Часто задаваемые вопросы
Урок «Кэширование и несколько источников инвентаря» бесплатный?
Да — полный текст урока «Кэширование и несколько источников инвентаря» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Кэширование и несколько источников инвентаря»?
Объединяйте большие инвентари и ускоряйте их обработку Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Кэширование и несколько источников инвентаря»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ограничения статической модели и плагина инвентаря
- Плагин инвентаря aws_ec2
- constructed: группировка узлов по меткам
- Кэширование и несколько источников инвентаря