From 02c8bc6f059762d76e1148137b8aea1608333ad8 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Wed, 3 May 2023 14:24:18 +0200 Subject: [PATCH] add shephard to automatically update services closes #1 --- ansible/playbooks/stacks.yml | 1 + ansible/roles/shephard/docker-stack.yml | 42 +++++++++++++++++++++++++ ansible/roles/shephard/tasks/main.yml | 15 +++++++++ 3 files changed, 58 insertions(+) create mode 100644 ansible/roles/shephard/docker-stack.yml create mode 100644 ansible/roles/shephard/tasks/main.yml diff --git a/ansible/playbooks/stacks.yml b/ansible/playbooks/stacks.yml index c15c531..7d49222 100644 --- a/ansible/playbooks/stacks.yml +++ b/ansible/playbooks/stacks.yml @@ -15,3 +15,4 @@ - {role: inbucket, tags: inbucket} - {role: kms, tags: kms} - {role: swarm_dashboard, tags: swarm_dashboard} + - {role: shephard, tags: shephard} diff --git a/ansible/roles/shephard/docker-stack.yml b/ansible/roles/shephard/docker-stack.yml new file mode 100644 index 0000000..80261d2 --- /dev/null +++ b/ansible/roles/shephard/docker-stack.yml @@ -0,0 +1,42 @@ +version: "3" + +services: + app: + image: mazzolino/shepherd + environment: + TZ: 'Europe/Amsterdam' + FILTER_SERVICES: '' + IGNORELIST_SERVICES: "" + RUN_ONCE_AND_EXIT: "true" + volumes: + - type: bind + source: /var/run/docker.sock + target: /var/run/docker.sock + read_only: true + deploy: + replicas: 0 + restart_policy: + condition: none + labels: + - swarm.cronjob.enable=true + - "swarm.cronjob.schedule=0 2 * * *" + - swarm.cronjob.skip-running=true + placement: + constraints: + - node.role == manager + + scheduler: + image: crazymax/swarm-cronjob:latest + volumes: + - type: bind + source: /var/run/docker.sock + target: /var/run/docker.sock + read_only: true + environment: + - "TZ=Europe/Amsterdam" + - "LOG_LEVEL=info" + - "LOG_JSON=false" + deploy: + placement: + constraints: + - node.role == manager diff --git a/ansible/roles/shephard/tasks/main.yml b/ansible/roles/shephard/tasks/main.yml new file mode 100644 index 0000000..15d9626 --- /dev/null +++ b/ansible/roles/shephard/tasks/main.yml @@ -0,0 +1,15 @@ +- name: Create working directory + file: + path: /srv/shephard + state: directory + +- name: Copy Docker stack file + copy: + src: "{{ role_path }}/docker-stack.yml" + dest: /srv/shephard/docker-stack.yml + +- name: Deploy Docker stack + docker_stack: + name: shephard + compose: + - /srv/shephard/docker-stack.yml