gpt4 book ai didi

Ansible jinja2 过滤器 '|' (pipe) 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 13:26:21 28 4
gpt4 key购买 nike

我写了一个任务如下,但不明白什么是“|”做?

tasks:
- shell: /usr/bin/foo
register: result
ignore_errors: True

- debug: msg="it failed"
when: result|failed

- debug: msg="it changed"
when: result|changed

我也在网上找到了一些例子,但不明白什么是“|”做?

debug: msg={{ ipaddr |replace(",", ".") }}

再举一个例子:

- hosts: localhost
vars:
D:
1 : "one"
2 : "two"
tasks:
- debug: var=D
- debug: msg="D[1] is {{ D[1]|default ('undefined') }}"

如果有人可以详细解释或指向我一些 URL 会很棒吗?

任何帮助,将不胜感激。

谢谢。

最佳答案

使用管道字符将值传递给过滤器。有无数Jinja 2 filters但 Ansible brings some additional filters .

术语过滤器有时可能会令人困惑,因为所有过滤器的工作方式都非常不同。例如,一些减少散列/数组的结果集,一些修改字符串的内容,但是有些过滤器只返回 true 或 false。

更好的解释可能是这些是修饰符,它们可以对您传递的数据做任何事情。你甚至可以write your own filters .

过滤器可以链接起来,将结果从第一个过滤器传递到下一个,依此类推。它的工作方式与 unix shell 上的管道命令完全一样。

"value" | filter1 | filter2 | filterN
failed过滤器返回 true如果通过的结果失败。它只是检查 failed属性(property)来自 result .
changed filter 是一样的,但检查传递的结果是否有变化。它检查 changed属性(property)来自 result .
ipaddr | replace(",", ".")替换所有出现的 ,. .所以值 127,0,0,1将转换为 127.0.0.1 .
default如果输入为空,过滤器将设置一个默认值,例如一个 undefined variable 。 undefined_var | default("var was undefined") -> 这将打印 undefined_var 的内容或字符串“var 未定义”。在上面给出的示例中,您输出 D 的第二个元素的值( D[1] ),如果它不存在,则使用“未定义”代替。

关于Ansible jinja2 过滤器 '|' (pipe) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883151/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com