Плагины кэширования
- Включение плагинов кэширования фактов
- Включение плагинов кэширования инвентаря
- Использование плагинов кэширования
- Список плагинов
Плагины кэширования позволяют Ansible хранить собранные факты или данные источников инвентаря без потери производительности при их извлечении из источника.
По умолчанию используется плагин кэширования памяти, который кэширует данные только для текущего выполнения Ansible. Доступны другие плагины с постоянным хранилищем, которые позволяют кэшировать данные между запусками. Некоторые из этих плагинов кэширования записывают данные в файлы, другие — в базы данных.
Вы можете использовать разные плагины кэширования для инвентаря и фактов. Если вы включили кэширование инвентаря, не задав плагин кэширования, специфичный для инвентаря, Ansible использует плагин кэширования фактов как для фактов, так и для инвентаря.
Включение плагинов кэширования фактов
Кэширование фактов всегда включено. Однако одновременно активен только один плагин кэширования фактов. Вы можете выбрать плагин кэширования для кэширования фактов в конфигурации Ansible, либо с помощью переменной среды:
export ANSIBLE_CACHE_PLUGIN=jsonfile
либо в файле ansible.cfg:
[defaults] fact_caching=redis
Если плагин кэширования находится в коллекции, используйте полное квалифицированное имя:
[defaults] fact_caching = namespace.collection_name.cache_plugin_name
Чтобы включить пользовательский плагин кэширования, сохраните его в каталоге cache_plugins рядом с вашим плейлистом, внутри роли или в одном из каталогов-источников, настроенных в ansible.cfg.
Вам также необходимо настроить другие параметры, специфичные для каждого плагина. Обратитесь к документации по каждому плагину или к 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
- Плагины обратного вызова
-
Плагины обратного вызова Ansible
- Плагины подключения
-
Плагины подключения Ansible
- Плагины инвентаря
-
Плагины инвентаря Ansible
- Плагины оболочки
-
Плагины оболочки Ansible
- Плагины стратегии
-
Плагины стратегии Ansible
- Плагины переменных
-
Плагины переменных Ansible
- Пользовательский список рассылок
-
У вас есть вопросы? Заходите на форум!
- webchat.freenode.net
-
IRC-чат-канал #ansible
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/plugins/cache.html