预期的输出是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