一些ansible命令产生的json输出对人类来说几乎无法读取。当人们需要检查剧本是否正确执行并导致混淆时,它会分散注意力。
示例命令是shell
和replace
- 它们会产生大量无用的噪音。我怎么能阻止这个?简单 ok |改变了失败就足够了。我不需要整个JSON。
答案 0 :(得分:25)
对要阻止所有进一步输出的任务使用no_log: True
。
- shell: whatever
no_log: True
我相信唯一提及此功能的是FAQ。
示例剧本:
- hosts:
- localhost
gather_facts: no
vars:
test_list:
- a
- b
- c
tasks:
- name: Test with output
shell: echo "{{ item }}"
with_items: test_list
- name: Test w/o output
shell: echo "{{ item }}"
no_log: True
with_items: test_list
示例输出:
TASK: [Test with output] ******************************************************
changed: [localhost] => (item=a)
changed: [localhost] => (item=b)
changed: [localhost] => (item=c)
TASK: [Test w/o output] *******************************************************
changed: [localhost]
changed: [localhost]
changed: [localhost]
答案 1 :(得分:0)
您可以使用-o-ansible命令的一行输出(不适用于ansible-playbook):
ansible -o -m shell -a 'command' target
它将主机名,命令返回代码和命令输出放在同一行:
hostname1 | CHANGED | rc=0 | (stdout) command output
hostname2 | CHANGED | rc=0 | (stdout) command output
hostname3 | CHANGED | rc=0 | (stdout) command output