首页 > 解决方案 > 为清晰起见,ansible adhoc 任务由主机单独输出

问题描述

有没有办法通过托管多叉即席命令的输出来分离?

即如果我跑:

ansible <group> -a '/some/cmd' -f 2

结果以一条长流的形式返回,例如

host1 | CHANGED | rc=0 >>
Listing...
"some output"
host2 | CHANGED | rc=0 >>
Listing...
"other output"

为了清楚起见,我更喜欢每个主机的输出之间有间隙的输出,例如:

host1 | CHANGED | rc=0 >>
Listing...
"some output"

host2 | CHANGED | rc=0 >>
Listing...
"other output"

甚至在目标上创建一个脚本,该脚本最后会执行回显并运行它不会执行此操作。

标签: ansible

解决方案


我经历过相同的行为,即最后的空行被删除。由于有时我有类似的要求并且取决于任务,我使用以下方法

ansible test --user ${USER} --ask-pass --module-name shell --args "echo 'Output format test'; echo ' ';"

导致输出

test1.example.com | CHANGED | rc=0 >>
Output format test

test2.example.com | CHANGED | rc=0 >>
Output format test
 

换句话说,只需; echo ' ';在末尾添加一个。

有关输出格式的更多信息,请参见


推荐阅读