sorin
sorin

Reputation: 170460

How to use changed_when with ansible shell module?

I have a complex shell script that is run by ansible and I do want to communicate from it to ansible when changes were made on the system, so Ansible will know that the host was modified.

This is achieve by using changed_when: condition but the problem is that I cannot really rely on a specific exit code to be used for success_with_change instead of success_without_change.

What other options are available? Can I use register: and use the registered variable inside changed_when: in order to check for a placeholder string in the output?

Upvotes: 6

Views: 11768

Answers (1)

Konstantin Suvorov
Konstantin Suvorov

Reputation: 68269

Yes, you can use registered variable. For example:

- shell: mycommand.sh
  register: script_res
  changed_when: "'changed' in script_res.stdout"

Upvotes: 11

Related Questions