缓存插件

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

另请参阅

Action 插件

Action 插件

Callback 插件

Callback 插件

Connection 插件

Connection 插件

Inventory 插件

Inventory 插件

Shell 插件

Shell 插件

Strategy 插件

Strategy 插件

Vars 插件

Vars 插件

沟通

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