Плагины кэширования
- Включение плагинов кэширования фактов
- Включение плагинов кэширования инвентаризации
- Использование плагинов кэширования
- Список плагинов
Плагины кэширования реализуют механизм кэширования на уровне бэкенда, позволяющий Ansible хранить собранные данные о фактах или источники инвентаризации без потери производительности при получении их из исходного источника.
По умолчанию используется плагин кэширования memory, который кеширует данные только для текущего выполнения Ansible. Доступны другие плагины с постоянным хранилищем для кэширования данных между выполнениями.
Можно использовать отдельный плагин кэширования для инвентаризации и фактов. Если не указан плагин кэширования инвентаризации и включено кэширование инвентаризации, используется плагин кэширования фактов для инвентаризации.
Включение плагинов кэширования фактов
Одновременно может быть активен только один плагин кэширования фактов.
Включить плагин кэширования можно в конфигурации Ansible, либо через переменную среды:
export ANSIBLE_CACHE_PLUGIN=jsonfile
либо в файле ansible.cfg:
[defaults] fact_caching=redis
Если плагин кэширования находится в коллекции, используйте полное имя:
[defaults] fact_caching = namespace.collection_name.cache_plugin_name
Также необходимо настроить другие параметры, специфичные для каждого плагина. Подробности можно найти в документации к каждому плагину или в документации по Ansible конфигурации.
Пользовательский плагин кэширования включается, поместив его в cache_plugins директорию, соседнюю с вашим плейбуком, внутри роли или в одном из директорий, указанных в ansible.cfg.
Включение плагинов кэширования инвентаризации
Инвентаризация может быть кэширована с помощью плагина кэширования на основе файлов (например, jsonfile). Проверьте конкретный плагин инвентаризации, чтобы узнать, поддерживает ли он кэширование. Плагины кэширования внутри коллекции не поддерживают кэширование инвентаризации. Если не указан плагин кэширования инвентаризации, 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
Подробности можно найти в документации к каждому плагину инвентаризации или в документации по Ansible конфигурации.
Использование плагинов кэширования
Плагины кэширования используются автоматически после их включения.
Список плагинов
Вы можете использовать ansible-doc -t cache -l для просмотра списка доступных плагинов. Используйте ansible-doc -t cache <plugin name> для просмотра конкретной документации и примеров.
- jsonfile – Файлы в формате JSON
- memcached – Использование базы данных memcached для кэширования
- memory – Кэширование в оперативной памяти, не сохраняется
- mongodb – Использование MongoDB для кэширования
- pickle – Файлы в формате Pickle
- redis – Использование базы данных Redis для кэширования
- yaml – Файлы в формате YAML
См. также
- Плагины действий
- Плагины действий 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.9/plugins/cache.html