过滤器插件

过滤器插件操纵数据。在正确过滤器下,咱们可以提取某特定值、转换数据类型与格式、执行数学计算、拆分和连接字符串、插入日期与时间等。Ansible 使用了 Jinja2 提供的标准过滤器,并增加了一些专门过滤器插件。咱们可以 创建定制 Ansible 过滤器插件

启用过滤器插件

通过将其放入咱们 play 旁边的 filter_plugins 目录、在某个角色内,或放入 ansible.cfg 中配置的过滤器插件目录来源中,咱们就可以添加定制过滤器插件。

使用过滤器插件

在 Ansible 中咱们可使用模板的任何地方,咱们都可以使用这些过滤器:在 play 中、在变量文件中,或 template 模组的 Jinja2 模板中。有关使用过滤器插件的更多信息,请参阅 使用过滤器操作数据。过滤器可返回任何类型的数据,但如果咱们想要返回布尔值(即 truefalse),则应看看某种测试。

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

过滤器是 Ansible 中处理数据的首选方式,因为过滤器前面通常以 | 作为先导,以其表达式作为该过滤器的第一个输入,故咱们可以此识别出他。与大多数编程函数一样,咱们可能会向过滤器本身,传递一些额外参数。这些参数既可以是 positional(即按顺序传递),也可以是 named(以 key=value 对的形式传递)。在同时传递这两种类型的参数时,按位置的参数应放在前面。

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(|) 左边表达式相对应的 C(_input) 选项。文档中的 C(positional:) 字段将显示哪些选项是位置选项,以及他们所要求的顺序。

插件列表

咱们可使用 ansible-doc -t filter -l 命令查看可用插件的列表。使用 ansible-doc -t filter <plugin name> 命令查看特定插件的文档与示例。

(End)

Last change: 2025-02-22, commit: 863eabf

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。