2015-09-09 9 views
10

Niektóre polecenia ansiblowe generują dane wyjściowe json, które są ledwie czytelne dla ludzi. Rozprasza uwagę osób, które muszą sprawdzić poprawność wykonania instrukcji i powodować zamieszanie.Jak wyłączyć wyjście json z określonych poleceń ansibli?

Przykładowe polecenia: shell i replace - generują dużo niepotrzebnego hałasu. Jak mogę temu zapobiec? Proste ok | zmieniono | nie powiodło się. Nie potrzebuję całego JSON.

Odpowiedz

15

Użyj no_log: True do zadań, w których chcesz tłumić wszystkie dalsze wyniki.

- shell: whatever 
    no_log: True 

Uważam, że jedyną wzmianką o tej funkcji jest FAQ.

Przykład PlayBook:

- 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 

Przykâadowa:

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

nie wydaje się działać. Używam 'ansible-playbook 2.0.0' i' no_log: True' nie ma wpływu na polecenia 'shell',' copy' i 'replace'. Wskazówka może być taka, że ​​używam 'with_items' dla wszystkich tych poleceń. – SiliconMind

+0

Cóż, 2.0.0 jest wydaniem alfa. Dodałem przykład powyżej i działa z Ansible 1.9.2 – udondan

+0

Wydaje się, że v 2.0.0-0.3.beta1 zachowuje się bardziej przyjazny dla człowieka sposób, jeśli chodzi o wyjście wiadomości. – SiliconMind