过滤器插件

过滤器插件操作数据。使用正确的过滤器,您可以提取特定值、转换数据类型和格式、执行数学计算、拆分和连接字符串、插入日期和时间,以及执行更多操作。 Ansible 使用与 Jinja2 一起提供的 标准过滤器 并添加一些专门的过滤器插件。您可以 创建自定义 Ansible 过滤器作为插件.

启用过滤器插件

您可以通过将自定义过滤器插件放入 filter_plugins 目录(该目录位于您的剧本旁边、角色内部,或将其放入 ansible.cfg 中配置的过滤器插件目录源之一中)来添加自定义过滤器插件。

使用过滤器插件

您可以在 Ansible 中使用模板的任何地方使用过滤器:在剧本中、在变量文件中或用于 template 模块的 Jinja2 模板中。有关使用过滤器插件的更多信息,请参阅 使用过滤器操作数据。过滤器可以返回任何类型的数据,但如果您想始终返回布尔值(truefalse),则应该使用测试。

vars:
   yaml_string: "{{ some_variable|to_yaml }}"

过滤器是在 Ansible 中操作数据的首选方法,您可以通过它前面的 | 来识别过滤器,其左侧的表达式是过滤器的第一个输入。额外的参数可以像大多数编程函数一样传递给过滤器本身。这些参数可以是 positional(按顺序传递)或 named(作为键值对传递)。当传递这两种类型时,位置参数应放在前面。

passing_positional: {{ (x == 32) | ternary('x is 32', 'x is not 32') }}
passing_extra_named_parameters: {{ some_variable | to_yaml(indent=8, width=1337) }}
passing_both: {{ some_variable| ternary('true value', 'false value', none_val='NULL') }}

在文档中,过滤器将始终具有一个 C(_input) 选项,它对应于 c(| 左侧的表达式。文档中的 C(positional:) 字段将显示哪些选项是位置参数,以及它们所需的顺序。

插件列表

您可以使用 ansible-doc -t filter -l 查看可用插件的列表。使用 ansible-doc -t filter <plugin name> 查看特定于插件的文档和示例。

另请参阅

Ansible 剧本

剧本简介

清单插件

清单插件

回调插件

回调插件

测试插件

测试插件

查找插件

查找插件

沟通

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