缓存插件
缓存插件允许 Ansible 存储收集到的事实或清单源数据,而无需从源检索它们带来的性能损失。
默认缓存插件是 内存 插件,它仅缓存 Ansible 当前执行的数据。其他具有持久存储的插件可用于跨运行缓存数据。其中一些缓存插件写入文件,而另一些则写入数据库。
您可以为清单和事实使用不同的缓存插件。如果您启用清单缓存而没有设置特定于清单的缓存插件,则 Ansible 将事实缓存插件用于事实和清单。如有必要,您可以 创建自定义缓存插件。
启用事实缓存插件
事实缓存始终启用。但是,一次只能激活一个事实缓存插件。您可以在 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>
查看特定于插件的文档和示例。