缓存插件

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

另请参阅

操作插件

操作插件

回调插件

回调插件

连接插件

连接插件

清单插件

清单插件

Shell 插件

Shell 插件

策略插件

策略插件

变量插件

变量插件

沟通

有问题?需要帮助?想分享你的想法?请访问 Ansible 沟通指南