infra/roles/watchtower/tasks/main.yml
2026-01-19 15:02:13 -05:00

39 lines
1.2 KiB
YAML

---
- name: Create Watchtower directory
file:
path: /opt/watchtower
state: directory
- name: Copy Docker Compose file for Watchtower
template:
src: docker-compose.yml.j2
dest: /opt/watchtower/docker-compose.yml
- name: Deploy Watchtower
command: docker compose up -d
args:
chdir: /opt/watchtower
- name: Wait for Watchtower service to be running
command: docker compose ps --services --filter status=running
args:
chdir: /opt/watchtower
register: watchtower_running
changed_when: false
retries: 10
delay: 3
until: "'watchtower' in (watchtower_running.stdout | default(''))"
- name: Read Watchtower logs if not running
command: docker compose logs --no-color --tail=200
args:
chdir: /opt/watchtower
register: watchtower_logs
changed_when: false
failed_when: false
when: "'watchtower' not in (watchtower_running.stdout | default(''))"
- name: Fail if Watchtower is not running
fail:
msg: "Watchtower is not running. docker compose ps output: {{ watchtower_running.stdout | default('') }}\n\nLogs:\n{{ watchtower_logs.stdout | default('') }}\n{{ watchtower_logs.stderr | default('') }}"
when: "'watchtower' not in (watchtower_running.stdout | default(''))"