Ansible gotchasEdit
Adding a changed_when
to a script means that non-zero exit codes are not considered a failure
You need to add an explicit failed_when
as well:
- name: mysql | upgrade database
script: upgrade-mysql.sh
register: result
changed_when: '"no change" not in result.stdout'
failed_when: 'result.rc != 0'
sudo: yes
notify: mysql | restart
Role dependencies may run multiple times
Force them to run once only with an explicit set_fact
guard clause:
---
# Make sure we only run once, even when multiple roles depend on us.
- include: base.yml
when: git_repo_role_done is not defined
- set_fact: git_repo_role_done=true
sudo
, become_user
and friends may not work with the script
module
Reported here.
For now, the workaround is to inline your sudo
calls inside the scripts.