缓存插件
缓存插件允许 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>
查看特定于插件的文档和示例。