Vars 插件

Vars 插件将额外的变量数据注入 Ansible 运行中,这些数据不是来自清单源、剧本或命令行。诸如 "host_vars" 和 "group_vars" 之类的剧本构造使用 vars 插件。有关 Ansible 中变量的更多详细信息,请参阅 使用变量.

Vars 插件在 Ansible 2.0 中部分实现,并在 Ansible 2.4 开始被完全重新编写。

与 Ansible 一起提供的 host_group_vars 插件支持从 为一台机器分配变量:主机变量为多台机器分配变量:组变量 读取变量。

启用 Vars 插件

可以通过将自定义 vars 插件放到与您的剧本相邻的 "vars_plugins" 目录中,放到角色内,或将其放到 ansible.cfg 中配置的目录源之一中来激活它。

大多数 vars 插件默认情况下是禁用的。要启用 vars 插件,请在 ansible.cfg 的 "defaults" 部分中设置 "vars_plugins_enabled",或者将 "ANSIBLE_VARS_ENABLED" 环境变量设置为要执行的 vars 插件列表。默认情况下,与 Ansible 一起提供的 host_group_vars 插件已启用。

从 Ansible 2.10 开始,您可以在集合中使用 vars 插件。集合中的所有 vars 插件都必须显式启用,并且必须使用完全限定的集合名称,格式为 "namespace.collection_name.vars_plugin_name"。

[defaults]
vars_plugins_enabled = host_group_vars,namespace.collection_name.vars_plugin_name

使用 Vars 插件

默认情况下,vars 插件在启用后会按需自动使用。

从 Ansible 2.10 开始,vars 插件可以在特定时间运行。"ansible-inventory" 不使用这些设置,并且始终加载 vars 插件。

全局设置 "RUN_VARS_PLUGINS" 可以通过 "defaults" 部分中的 "run_vars_plugins" 或 "ANSIBLE_RUN_VARS_PLUGINS" 环境变量在 "ansible.cfg" 中设置。默认选项 "demand" 会在任务需要变量时运行任何启用的相对于清单源的 vars 插件。您可以使用选项 "start" 来运行任何启用的相对于清单源的 vars 插件,而不是在导入该清单源之后。

您也可以控制支持 "stage" 选项的 vars 插件的每个插件的基础上的 vars 插件执行。要让 host_group_vars 插件在导入清单后运行,您可以在 ansible.cfg 中添加以下内容

[vars_host_group_vars]
stage = inventory

插件列表

您可以使用 "ansible-doc -t vars -l" 查看可用的 vars 插件列表。使用 "ansible-doc -t vars " 查看特定于插件的文档和示例。

另请参阅

缓存插件

缓存插件

查找插件

查找插件

用户邮件列表

有问题?请访问 Google 群组!

实时聊天

如何加入 Ansible 聊天频道