diff --git a/roles/docker/tasks/monitoring/cronmaster.yml b/roles/docker/tasks/monitoring/cronmaster.yml new file mode 100644 index 0000000..146d3b7 --- /dev/null +++ b/roles/docker/tasks/monitoring/cronmaster.yml @@ -0,0 +1,22 @@ +- name: make cronmaster directories + ansible.builtin.file: + path: "{{ item }}" + state: directory + loop: + - /opt/stacks/cronmaster + - /opt/stacks/cronmaster/scripts + - /opt/stacks/cronmaster/data + - /opt/stacks/cronmaster/snippets + +- name: Template out the compose file + ansible.builtin.template: + src: cronmaster-compose.yml.j2 + dest: /opt/stacks/cronmaster/compose.yml + owner: root + mode: '0644' + +- name: deploy cronmaster stack + community.docker.docker_compose_v2: + project_src: /opt/stacks/cronmaster + files: + - compose.yml \ No newline at end of file diff --git a/roles/docker/tasks/monitoring/main.yml b/roles/docker/tasks/monitoring/main.yml index 49e16e5..63a794a 100644 --- a/roles/docker/tasks/monitoring/main.yml +++ b/roles/docker/tasks/monitoring/main.yml @@ -15,4 +15,8 @@ - name: Install gotify import_tasks: gotify.yml - tags: gotify \ No newline at end of file + tags: gotify + +- name: Install cronmaster + import_tasks: cronmaster.yml + tags: cronmaster \ No newline at end of file diff --git a/roles/docker/templates/cronmaster-compose.yml.j2 b/roles/docker/templates/cronmaster-compose.yml.j2 new file mode 100644 index 0000000..094af0d --- /dev/null +++ b/roles/docker/templates/cronmaster-compose.yml.j2 @@ -0,0 +1,32 @@ +services: + cronmaster: + image: ghcr.io/fccview/cronmaster:latest + container_name: cronmaster + restart: unless-stopped + user: "root" + privileged: true + pid: "host" + ports: + - "{{ network.docker_host_ip }}:40123:3000" + environment: + - DOCKER=true + - HOST_PROJECT_DIR=/opt/stacks/cronmaster/scripts + - HOST_CRONTAB_USER=root,phil + - AUTH_PASSWORD={{ vault_cronmaster.password }} + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /opt/stacks/cronmaster/scripts:/app/scripts + - /opt/stacks/cronmaster/data:/app/data + - /opt/stacks/cronmaster/snippets:/app/snippets + labels: + glance.url: "http://{{ network.docker_host_ip }}:40123/" + glance.title: CronMaster + glance.description: Cron job management interface + glance.group: Infrastructure + glance.parent: infrastructure + glance.name: CronMaster + +networks: + default: + external: true + name: "{{ docker.network_name }}" \ No newline at end of file