【发布时间】:2016-09-18 05:00:09
【问题描述】:
在 ansible 中,我可以使用类似的东西:
debug:var="{{lookup('pipe', 'date +%Y%m%d')}}"
这可以工作,但“管道”是什么意思?在 ansible 文档中找不到对此的任何详细解释,想了解该语句运行时会发生什么。
例如,'date' 是否意味着从 shell 运行 'date' 命令?然后使用类似管道的方式以指定的方式格式化日期?
【问题讨论】:
标签: ansible
在 ansible 中,我可以使用类似的东西:
debug:var="{{lookup('pipe', 'date +%Y%m%d')}}"
这可以工作,但“管道”是什么意思?在 ansible 文档中找不到对此的任何详细解释,想了解该语句运行时会发生什么。
例如,'date' 是否意味着从 shell 运行 'date' 命令?然后使用类似管道的方式以指定的方式格式化日期?
【问题讨论】:
标签: ansible
pipe 是一个 ansible 查找插件,它将计算您在查找的第二个参数中指定的 shell 命令的输出,并将其通过管道传输到查找的左侧。您可以在那里指定任何 shell 命令。
因此,在您的示例中,shell 命令date +%Y%m%d 的输出应通过管道传输到调试模块,var 应设置为此输出值。
我通常使用pipe 查找来为时间戳设置一个事实,以便我可以在任何资源名称末尾的变量中附加时间戳,如下所示:
- set_fact: timestamp="{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
【讨论】:
debug的第一个例子。做得好。干杯。