26 lines
1.1 KiB
YAML
26 lines
1.1 KiB
YAML
---
|
|
- name: Execute unattended Mailcow update
|
|
become: true
|
|
ansible.builtin.command:
|
|
cmd: ./update.sh --force
|
|
chdir: "{{ mailcow_dir | default('/data/mailcow') }}"
|
|
register: mailcow_first_pass
|
|
# Exit code 2 means "modules updated, run me again". Anything else is a real failure.
|
|
failed_when: mailcow_first_pass.rc not in [0, 2]
|
|
changed_when:
|
|
- mailcow_first_pass.rc == 0
|
|
- "'Updated code is available' in mailcow_first_pass.stdout or 'Pulling' in mailcow_first_pass.stdout or 'Upgrading' in mailcow_first_pass.stdout"
|
|
notify: Restart main Docker stack
|
|
|
|
- name: Re-run unattended Mailcow update (if modules changed)
|
|
become: true
|
|
ansible.builtin.command:
|
|
cmd: ./update.sh --force
|
|
chdir: "{{ mailcow_dir | default('/data/mailcow') }}"
|
|
# Only trigger this second pass if the first pass threw the specific restart code
|
|
when: mailcow_first_pass.rc == 2
|
|
register: mailcow_second_pass
|
|
changed_when:
|
|
- "'Updated code is available' in mailcow_second_pass.stdout or 'Pulling' in mailcow_second_pass.stdout or 'Upgrading' in mailcow_second_pass.stdout"
|
|
notify: Restart main Docker stack
|