Плагины кэширования
- Включение плагинов кэширования фактов
- Включение плагинов кэширования инвентаризации
- Использование плагинов кэширования
- Список плагинов
Плагины кэширования позволяют Ansible сохранять собранные факты или данные источников инвентаризации, не тратя ресурсы на их получение из источника при каждом обращении.
По умолчанию используется плагин кэширования memory, который кэширует данные только на время текущего запуска Ansible. Доступны и другие плагины с постоянным хранилищем, позволяющие сохранять данные между запусками. Некоторые из них записывают данные в файлы, а другие — в базы данных.
Для инвентаризации и фактов можно использовать разные плагины кэширования. Если кэширование инвентаризации включено, но отдельный плагин кэширования для инвентаризации не указан, Ansible использует плагин кэширования фактов как для фактов, так и для инвентаризации. При необходимости вы можете создать собственные плагины кэширования.
Реализация плагина кэширования является внутренней деталью реализации, на которую не должны полагаться внешние пользователи. Формат данных и способ их хранения определяются плагином; эти данные могут измениться или даже отсутствовать. Поэтому к кэшу плагина ansible.builtin.jsonfile, community.general.redis или любого другого плагина кэширования нельзя обращаться извне самого плагина.
Кэш, поддерживаемый плагином кэширования, следует использовать только косвенно в плейбуке, не предполагая, что данные вообще были получены из кэша.
Включение плагинов кэширования фактов
Кэширование фактов всегда включено. Однако одновременно может быть активен только один плагин кэширования фактов. Выбрать плагин для кэширования фактов можно в конфигурации Ansible, задав переменную среды:
export ANSIBLE_CACHE_PLUGIN=jsonfile
или в файле ansible.cfg:
[defaults] fact_caching=redis
Если плагин кэширования входит в коллекцию, укажите его полное имя:
[defaults] fact_caching = namespace.collection_name.cache_plugin_name
Чтобы включить собственный плагин кэширования, сохраните его в одном из каталогов, настроенных в ansible.cfg, или в коллекции, а затем укажите его полное имя (FQCN).
Также необходимо настроить другие параметры, специфичные для каждого плагина. Подробнее см. документацию соответствующего плагина или конфигурацию Ansible.
Примечание
Наличие кэша или отдельного элемента в нём не должно быть обязательным условием. Плейбуки не следует писать так, чтобы они могли завершиться с ошибкой при отсутствии кэша или определённого значения. Попадание в кэш или промах кэша не должны влиять на выполнение плейбука.
Включение плагинов кэширования инвентаризации
По умолчанию кэширование инвентаризации отключено. Чтобы кэшировать данные инвентаризации, необходимо включить кэширование инвентаризации, а затем выбрать нужный плагин кэширования. Кэширование поддерживают не все плагины инвентаризации, поэтому ознакомьтесь с документацией используемых плагинов инвентаризации. Включить кэширование инвентаризации можно с помощью переменной среды:
export ANSIBLE_INVENTORY_CACHE=True
или в файле ansible.cfg:
[inventory] cache=True
или в файле конфигурации, если плагин инвентаризации принимает источник конфигурации YAML:
# dev.aws_ec2.yaml plugin: aws_ec2 cache: True
Одновременно может быть активен только один плагин кэширования инвентаризации. Его можно указать с помощью переменной среды:
export ANSIBLE_INVENTORY_CACHE_PLUGIN=jsonfile
или в файле ansible.cfg:
[inventory] cache_plugin=jsonfile
или в файле конфигурации, если плагин инвентаризации принимает источник конфигурации YAML:
# dev.aws_ec2.yaml plugin: aws_ec2 cache_plugin: jsonfile
Чтобы кэшировать инвентаризацию с помощью собственного плагина из пути поиска плагинов, следуйте руководству разработчика по плагинам кэширования.
Чтобы кэшировать инвентаризацию с помощью плагина кэширования из коллекции, укажите его полное имя (FQCN):
[inventory] cache_plugin=collection_namespace.collection_name.cache_plugin
Если включить кэширование для плагинов инвентаризации, не выбрав отдельный плагин кэширования инвентаризации, Ansible будет кэшировать инвентаризацию с помощью настроенного плагина кэширования фактов. Подробнее см. документацию соответствующего плагина инвентаризации или конфигурацию Ansible.
Использование плагинов кэширования
После включения плагины кэширования используются автоматически.
Список плагинов
Чтобы просмотреть список доступных плагинов, используйте ansible-doc -t cache -l. Чтобы ознакомиться с документацией и примерами для конкретного плагина, используйте ansible-doc -t cache <plugin name>.
См. также
- Плагины действий
-
Плагины действий
- Плагины обратного вызова
-
Плагины обратного вызова
- Плагины подключений
-
Плагины подключений
- Плагины инвентаризации
-
Плагины инвентаризации
- Плагины оболочки
-
Плагины оболочки
- Плагины стратегий
-
Плагины стратегий
- Плагины переменных
-
Плагины переменных
- Общение
-
Есть вопросы? Нужна помощь? Хотите поделиться идеями? Посетите руководство по общению Ansible
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/plugins/cache.html