39 lines
1.2 KiB
YAML
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(''))"
|