缓存插件

缓存插件允许 Ansible 存储收集的事实或清单源数据,而无需从源检索它们带来的性能损失。

默认的缓存插件是 memory 插件,它只缓存当前 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 沟通指南