From 54a63ca069d228a03dd711451d89ab315f7ea869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=AD=C3=B0ir=20Valberg=20Gu=C3=B0mundsson?= Date: Sun, 11 Feb 2024 14:50:21 +0100 Subject: [PATCH] Add uptime kuma as a service we can deploy to a different host for monitoring. --- roles/docker/files/vhost/uptime_kuma | 4 +++ roles/docker/tasks/pre_deploy/uptime_kuma.yml | 9 ++++++ .../compose-files/uptime_kuma.yml.j2 | 23 +++++++++++++ roles/ubuntu_base/tasks/base.yml | 2 +- roles/ubuntu_base/tasks/main.yml | 3 +- uptime.data.coop.yml | 32 +++++++++++++++++++ 6 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 roles/docker/files/vhost/uptime_kuma create mode 100644 roles/docker/tasks/pre_deploy/uptime_kuma.yml create mode 100644 roles/docker/templates/compose-files/uptime_kuma.yml.j2 create mode 100644 uptime.data.coop.yml diff --git a/roles/docker/files/vhost/uptime_kuma b/roles/docker/files/vhost/uptime_kuma new file mode 100644 index 0000000..2cff0be --- /dev/null +++ b/roles/docker/files/vhost/uptime_kuma @@ -0,0 +1,4 @@ +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection "upgrade"; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header Host $host; \ No newline at end of file diff --git a/roles/docker/tasks/pre_deploy/uptime_kuma.yml b/roles/docker/tasks/pre_deploy/uptime_kuma.yml new file mode 100644 index 0000000..f153e0e --- /dev/null +++ b/roles/docker/tasks/pre_deploy/uptime_kuma.yml @@ -0,0 +1,9 @@ +- name: Upload vhost config for uptime domain + copy: + src: vhost/uptime_kuma + dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.uptime_kuma.domain }}_location" + +- name: Upload vhost config for status domain + copy: + src: vhost/uptime_kuma + dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.uptime_kuma.status_domain }}_location" diff --git a/roles/docker/templates/compose-files/uptime_kuma.yml.j2 b/roles/docker/templates/compose-files/uptime_kuma.yml.j2 new file mode 100644 index 0000000..3d737b8 --- /dev/null +++ b/roles/docker/templates/compose-files/uptime_kuma.yml.j2 @@ -0,0 +1,23 @@ +# Simple docker-compose.yml +# You can change your port or volume location + +version: '3.3' + +services: + uptime-kuma: + image: "louislam/uptime-kuma:{{ services.uptime_kuma.version }}" + restart: always + container_name: uptime-kuma + networks: + - external_services + volumes: + - "./uptime-kuma-data:/app/data" + environment: + VIRTUAL_HOST: "{{ services.uptime_kuma.domain }},{{ services.uptime_kuma.status_domain }}" + LETSENCRYPT_HOST: "{{ services.uptime_kuma.domain }},{{ services.uptime_kuma.status_domain }}" + LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" + + +networks: + external_services: + external: true \ No newline at end of file diff --git a/roles/ubuntu_base/tasks/base.yml b/roles/ubuntu_base/tasks/base.yml index f53f924..733270d 100644 --- a/roles/ubuntu_base/tasks/base.yml +++ b/roles/ubuntu_base/tasks/base.yml @@ -14,4 +14,4 @@ - name: Install Dell OpenManage apt: name: srvadmin-all - when: not vagrant + when: not vagrant and not skip_dell_apt_repo diff --git a/roles/ubuntu_base/tasks/main.yml b/roles/ubuntu_base/tasks/main.yml index e6a1f15..cc40345 100644 --- a/roles/ubuntu_base/tasks/main.yml +++ b/roles/ubuntu_base/tasks/main.yml @@ -2,10 +2,11 @@ --- - import_tasks: ssh-port.yml tags: [change-ssh-port] + when: not do_not_change_ssh_port - import_tasks: dell-apt-repo.yml tags: [setup-dell-apt-repo] - when: not vagrant + when: not skip_dell_apt_repo and not vagrant - import_tasks: upgrade.yml tags: [do-full-system-upgrade] diff --git a/uptime.data.coop.yml b/uptime.data.coop.yml new file mode 100644 index 0000000..2eee6ae --- /dev/null +++ b/uptime.data.coop.yml @@ -0,0 +1,32 @@ +# vim: ft=yaml.ansible +--- +- hosts: all + gather_facts: true + become: true + vars: + base_domain: "{{ 'datacoop.devel' if vagrant else 'data.coop' }}" + letsencrypt_enabled: true + letsencrypt_email: "admin@{{ base_domain }}" + services: + nginx_proxy: + volume_folder: "{{ volume_root_folder }}/nginx" + pre_deploy_tasks: true + version: "1.3-alpine" + acme_companion_version: "2.2" + uptime_kuma: + domain: "uptime.{{ base_domain }}" + status_domain: "status.{{ base_domain }}" + volume_folder: "{{ volume_root_folder }}/uptime_kuma" + pre_deploy_tasks: true + version: "latest" + do_not_change_ssh_port: true + skip_dell_apt_repo: true + vagrant: false + + tasks: + - import_role: + name: ubuntu_base + tags: + - base_only + - import_role: + name: docker