我写了一个如下任务,但无法理解'|' 呢?
tasks:
- shell: /usr/bin/foo
register: result
ignore_errors: True
- debug: msg="it failed"
when: result|failed
- debug: msg="it changed"
when: result|changed
Run Code Online (Sandbox Code Playgroud)
我也在网上找到了一些例子但是无法理解什么是'|' 呢?
debug: msg={{ ipaddr |replace(",", ".") }}
Run Code Online (Sandbox Code Playgroud)
还有一个例子:
- hosts: localhost
vars:
D:
1 : "one"
2 : "two"
tasks:
- debug: var=D
- debug: msg="D[1] is {{ D[1]|default ('undefined') }}"
Run Code Online (Sandbox Code Playgroud)
如果有人可以详细解释或指向某个URL,那会很棒吗?
任何帮助,将不胜感激.
谢谢.
udo*_*dan 30
使用管道字符,您可以将值传递给过滤器.有许多Jinja 2过滤器,但Ansible 带来了一些额外的过滤器.
术语过滤器有时可能会令人困惑,因为所有过滤器的工作方式都不同.有些例如减少散列/数组的结果集,有些修改字符串的内容,但是有些过滤器只返回true或false.
更好的解释可能是那些是修饰符,它们可以对传递的数据做任何事情.你甚至可以编写自己的过滤器.
可以链接过滤器,将结果从第一个过滤器传递到下一个过滤器,依此类推.它的工作方式与unix shell上的管道命令完全相同.
"value" | filter1 | filter2 | filterN
Run Code Online (Sandbox Code Playgroud)
该failed过滤器返回true如果传递的结果失败.它只是检查failed财产result.
该changed过滤器是一样的,但检查传递的结果有改变.它会检查changed房产result.
ipaddr | replace(",", ".")替换所有出现的,用..所以价值127,0,0,1会转化为127.0.0.1.
该default过滤器将设置一个缺省值,如果输入为空,例如未定义的变量.undefined_var | default("var was undefined")- >这将打印内容undefined_var或字符串"var was undefined".在上面的给定示例中,您输出D(D[1])的第二个元素的值,如果它不存在,则改为使用sting"undefined".
| 归档时间: |
|
| 查看次数: |
14984 次 |
| 最近记录: |