Ansible debug模块未输出预期Nginx版本问题求助
Nginx版本输出为空的排查与解决
核心原因
nginx -v的版本信息是输出到**标准错误流(stderr)**而非标准输出流(stdout),所以你通过version.stdout无法获取到内容,实际内容存在于version.stderr中。
解决方法
方法1:直接读取stderr内容
修改debug任务,读取stderr字段:
- debug: msg="{{version.stderr}}"
方法2:重定向stderr到stdout
修改command任务,将错误流重定向到标准输出:
- name: check nginx version command: nginx -v 2>&1 register: version
之后version.stdout就能正常获取到版本信息。
额外优化建议
你的Playbook中已经有检查nginx是否存在的任务,但没有添加条件判断,建议给版本检查任务加上执行条件,避免nginx不存在时抛出错误:
- name: check nginx version command: nginx -v 2>&1 register: version when: result.stat.exists
内容的提问来源于stack exchange,提问作者Shyam Gupta
相关产品推荐
相关产品推荐

