Ansible-playbookコマンドのstdoutを表示するにはどうすればよいですか? -vは、個々のコマンドではなく、ansible出力のみを表示します。これをすぐに実行する方法を理解できればすばらしいので、何かが失敗またはハングした場合、その理由を確認できます。
例えば.
- name: print to stdout
action: command echo "hello"
印刷する
TASK: [print variable] ********************************************************
hello
結果を変数に登録して、デバッグで印刷できると思います。
- name: print to stdout
command: echo "hello"
register: hello
- debug: msg="{{ hello.stdout }}"
- debug: msg="{{ hello.stderr }}"
stdoutの代わりに、stdout_linesを使用することをお勧めします。複数行出力の場合、これは非常に優れています。
- 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"
]
}
}
デバッグ目的のリアルタイム出力に関しては、クローズされたバグレポートがあります https://github.com/ansible/ansible/issues/3887#issuecomment-54672569 これが不可能であり、できない理由についての議論実装されます。
minimalstdout_callback
ansible-playbookを使用すると、アドホックansibleを使用した場合と同様の出力が得られました。
Ansible.cfgで(私はOS Xを使用しているので、callback_plugins
インストールに適したパス)
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を使用しています