I have recently switched my automation workflow from Chef to Ansible, and just bumped into a simple issue.
I wanted to run some commands only when the git repository had been updated, and do nothing if it was already up to date.
I did not find anything in the documentation, but after looking a little at the source code, I found out that when using
myvar.changed was set to
false depending on whether the repository had been updated or not.
So, to get the result I wanted, I just had to write something like this:
- name: Fetch project git: repo= accept_hostkey=yes dest= register: gitclone - name: Build project command: make when: gitclone.changed args: chdir: ""
I did not found a lot in the documentation about what can be used with
register, but I found out that it was easy enough to get this info from the source code, as it is a simple as looking for
module.exit_json calls in the module. For example for the git module.