Add watchtower to ansible for real and fix .gitignore
This commit is contained in:
parent
5908976abc
commit
9425376412
4 changed files with 52 additions and 7 deletions
14
.gitignore
vendored
14
.gitignore
vendored
|
@ -6,10 +6,10 @@ serguzim.net.png
|
||||||
diagram_assets/
|
diagram_assets/
|
||||||
|
|
||||||
# services already handled by ansible
|
# services already handled by ansible
|
||||||
acme-dns/
|
/acme-dns/
|
||||||
caddy/config/conf.002.d/acme.serguzim.me.conf
|
/caddy/config/conf.002.d/acme.serguzim.me.conf
|
||||||
gitea/
|
/gitea/
|
||||||
caddy/config/conf.002.d/git.serguzim.me.conf
|
/caddy/config/conf.002.d/git.serguzim.me.conf
|
||||||
umami/
|
/umami/
|
||||||
caddy/config/conf.002.d/analytics.serguzim.me.conf
|
/caddy/config/conf.002.d/analytics.serguzim.me.conf
|
||||||
watchtower/
|
/watchtower/
|
||||||
|
|
3
_ansible/roles/watchtower/files/run-once.sh
Normal file
3
_ansible/roles/watchtower/files/run-once.sh
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
docker compose run -e WATCHTOWER_RUN_ONCE=true -e WATCHTOWER_NOTIFICATIONS= watchtower
|
15
_ansible/roles/watchtower/tasks/main.yml
Normal file
15
_ansible/roles/watchtower/tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
- name: Deploy {{ svc.name }}
|
||||||
|
tags:
|
||||||
|
- watchtower
|
||||||
|
- container
|
||||||
|
block:
|
||||||
|
- import_tasks: steps/create-service-directory.yml
|
||||||
|
- import_tasks: steps/template-docker-compose.yml
|
||||||
|
- import_tasks: steps/template-service-env.yml
|
||||||
|
|
||||||
|
- name: Copy the run-once script
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: run-once.sh
|
||||||
|
dest: "{{ (service_path, 'run-once.sh') | path_join }}"
|
||||||
|
mode: '0755'
|
27
_ansible/roles/watchtower/vars/main.yml
Normal file
27
_ansible/roles/watchtower/vars/main.yml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
svc:
|
||||||
|
name: watchtower
|
||||||
|
|
||||||
|
svc_env:
|
||||||
|
WATCHTOWER_LABEL_ENABLE: true
|
||||||
|
WATCHTOWER_CLEANUP: true
|
||||||
|
WATCHTOWER_SCHEDULE: "0 27 20 * * *"
|
||||||
|
|
||||||
|
WATCHTOWER_NOTIFICATIONS: email
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_FROM: "{{ svc.name }}@serguzim.me"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_TO: "{{ admin_email }}"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: "{{ mailer.host }}"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: "{{ mailer.port }}"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: "{{ svc.name }}@serguzim.me"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: "{{ vault_watchtower.mailer.pass }}"
|
||||||
|
WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 5
|
||||||
|
|
||||||
|
compose:
|
||||||
|
watchtower: false
|
||||||
|
image: containerrr/watchtower
|
||||||
|
env: true
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
file:
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
hostname: "{{ ansible_facts.hostname }}"
|
Reference in a new issue