ansible查找管道这个管道是什么意思?

Jak*_*kim 4 ansible

在ansible,我可以使用类似的东西:

debug:var="{{lookup('pipe', 'date +%Y%m%d')}}"
Run Code Online (Sandbox Code Playgroud)

这可以工作,但"管道"是什么意思?在ansible文档中找不到任何详细解释,想要了解当该语句运行时会发生什么.

例如,'date'是指从shell运行'date'命令吗?然后使用管道方式以指定的方式格式化日期?

rk2*_*rk2 11

pipe是一个ansible查找插件,它将计算您在lookup的第二个参数中指定的shell命令的输出,并将其传递到查找的左侧.您可以在那里指定任何shell命令.

因此,在您的示例中,shell命令的输出date +%Y%m%d应该通过管道传递给调试模块,并且var应该设置为此输出值.

我一般用pipe的查找来设置时间戳的事实,让我能在最后的任何资源名称,像这样的追加时间戳在一个变量:

- set_fact: timestamp="{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
Run Code Online (Sandbox Code Playgroud)

关于Lookups的官方文档,以及包含的具体示例pipe.

  • 这里需要指出的是,ansible var 每次使用时都会被评估。因此,如果多次使用该变量,时间戳不能相同 (2认同)