Run commands only on git update with Ansible
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 register
, myvar.changed
was set to true
or 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.