2015-09-09 19 views
10

一些有說服力的命令會產生人類幾乎不可讀的json輸出。當他們需要檢查劇本是否正確執行並導致混淆時,它會分散人們的注意力。如何從特定的命令中禁用json輸出?

示例命令是shellreplace - 它們會產生大量無用的噪音。我怎樣才能防止這一點?簡單好的|改變|失敗就夠了。我不需要整個JSON。

回答

15

使用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 outout 
     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 outout] ******************************************************* 
changed: [localhost] 
changed: [localhost] 
changed: [localhost] 
+0

似乎並沒有工作。我使用'ansible-playbook 2.0.0'和'no_log:True'對'shell','copy'和'replace'命令沒有影響。提示可能是我爲所有這些命令使用'with_items'。 – SiliconMind

+0

那麼,2.0.0是一個alpha版本。我在上面添加了一個例子,它適用於Ansible 1.9.2 – udondan

+0

看來,v 2.0.0-0.3.beta1在消息輸出方面的行爲方式更加人性化。 – SiliconMind

相關問題