我如何看到标准输出剧本命令? -v只显示可靠的输出,而不是单个命令。 如果我能够立即想出如何做到这一点,那将是非常好的,所以如果某件事失败或挂起,我可以看出原因。
例如
- name: print to stdout action: command echo "hello"
会打印
TASK: [print variable] ******************************************************** hello
我认为你可以将结果注册到一个variables,然后用debugging打印。
- name: print to stdout command: echo "hello" register: hello - debug: msg="{{ hello.stdout }}" - debug: msg="{{ hello.stderr }}"
我build议使用stdout_lines而不是stdout 。 对于多行输出,这是更好,例如
- hosts: all tasks: - name: Run ls.sh and output "ls /" script: ls.sh register: out - debug: var=out.stdout_lines
给
TASK: [debug var=out.stdout_lines] ******************************************** ok: [local] => { "var": { "out.stdout_lines": [ "total 61", "lrwxrwxrwx 1 root root 7 Feb 15 2015 bin -> usr/bin", "drwxr-xr-x 6 root root 1024 Aug 24 22:08 boot", "drwxr-xr-x 22 root root 3580 Sep 8 18:41 dev", [...] "drwxr-xr-x 9 root root 4096 Aug 25 19:14 usr", "drwxr-xr-x 13 root root 4096 Feb 25 2015 var" ] } }
关于实时输出的debugging目的,有一个封闭的错误报告https://github.com/ansible/ansible/issues/3887#issuecomment-54672569讨论为什么这是不可能的,将不会实施的原因。
我发现使用最简单的 stdout_callback
和stdout_callback
-playbook给出类似的输出来使用ad-hoc ansible。
在你的ansible.cfg(请注意,我在OS X上,所以修改callback_plugins
path,以适应您的安装)
stdout_callback = minimal callback_plugins = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/plugins/callback
所以这样的任务
--- - hosts: example tasks: - name: Say hi command: echo "hi ..."
给出这样的输出,就像一个临时命令一样
example | SUCCESS | rc=0 >> hi ...
我正在使用ansible-playbook 2.2.1.0