User Tools

Site Tools


docs:tips_n_tricks:ansible:shell.html

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
docs:tips_n_tricks:ansible:shell.html [25.11.2023 15:22 CET] peterdocs:tips_n_tricks:ansible:shell.html [25.11.2023 15:36 CET] peter
Line 17: Line 17:
   changed_when: "'CHANGED' in my_result.stdout_lines"   changed_when: "'CHANGED' in my_result.stdout_lines"
   failed_when: "'FAILED' in my_result.stderr_lines"   failed_when: "'FAILED' in my_result.stderr_lines"
 +</code>
 +===== Task Template executing always - even in check mode - and failing on any output to stderr =====
 +This might be useful when using a script to gather information about the target host
 +<code yaml roles/templates/tasks/shell1.yml>
 +- name: You name it
 +  shell: |
 +    echo '{"name": "Test", "msg": "Do the real thing here"}' || echo "FAILED" >&2
 +  check_mode: False
 +  register: last_result
 +  changed_when: False
 +  failed_when: "last_result.stderr_lines | length > 0"
 +
 +- name: Add to list if name does not exist
 +  set_fact:
 +    list_of_information: "{{ list_of_information + [ item ] }}"
 +  loop: "{{ last_result.stdout_lines | from_json }}"
 +  when: "item.name not in list_of_information | map(attribute='name')"
 </code> </code>
 {{tag>Ansible Shell}} {{tag>Ansible Shell}}
 {{entry>Ansible}} {{entry>Ansible}}
 {{entry>Shell}} {{entry>Shell}}
docs/tips_n_tricks/ansible/shell.html.txt · Last modified: 25.11.2023 15:45 CET by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki