- name: Shell scriptlet shell: | if echo "Fake check for need of change - always true" then echo 'CHANGED' fi if [ "False" == "{{ ansible_check_mode}}" ] then echo "Do the real thing here" || echo "FAILED" >&2 fi check_mode: False register: my_result changed_when: "'CHANGED' in my_result.stdout_lines" failed_when: "'FAILED' in my_result.stderr_lines"
This might be useful when using a script to gather information about the target host
- name: Collect information 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')"