为什么调试模块没有打印预期的输出?



预期的输出是nginx的版本,但是它输出一个空字符串:

- hosts: localhost
tasks:
- name: check if nginx exists
stat:
path: /usr/sbin/nginx
register: result
- name: check nginx version
command: nginx -v
register: version
- debug: msg="{{version.stdout}}"

我得到了下面的输出:

TASK [debug] *********************************************************************************************************************
ok: [localhost] => {
"msg": ""
}

这是因为nginx -v将其输出发送到stderr,正如我们可以看到的

$ nginx -v >/dev/null
nginx version: nginx/1.23.3
$ nginx -v 2>/dev/null
$

所以你的输出实际上是在version.stderr中,如果你增加了可见的冗长或使用

,你会看到你自己。
- debug: var=version

最新更新