Add healthcheck pings to opentofu and add systemd cleanup to healthcheck

This commit is contained in:
Tobias Reisinger 2024-10-06 20:47:59 +02:00
parent 2ad3cce749
commit a15e70d73d
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
7 changed files with 60 additions and 11 deletions
roles/healthcheck

View file

@ -2,7 +2,6 @@
cd /opt/ || exit
hc_url="https://hc-ping.com/$HTTP_HC_UID"
services_down=""
error=""
@ -46,8 +45,8 @@ check_url "www.reitanlage-oranienburg.de"
if [ "$error" = "" ]
then
curl_hc "$hc_url" >/dev/null
curl_hc "$HTTP_HC_URL" >/dev/null
echo "ALL GOOD"
else
curl_hc --data-raw "$services_down$error" "$hc_url/fail" >/dev/null
curl_hc --data-raw "$services_down$error" "$HTTP_HC_URL/fail" >/dev/null
fi

View file

@ -8,10 +8,8 @@ import sys
import asyncio
from nio import AsyncClient, RoomMessageNotice
healthcheck_url = "https://hc-ping.com/" + os.environ['MATRIX_HC_UID']
def send_ping(success, msg=""):
url = healthcheck_url
url = os.environ['MATRIX_HC_URL']
if not success:
url += "/fail"

View file

@ -11,11 +11,30 @@
dest: /etc/systemd/system/healthcheck@.timer
mode: "0644"
become: true
- name: Get all healthcheck timers
ansible.builtin.shell:
cmd: "systemctl list-timers 'healthcheck@*' --all --output=json | jq -r '.[].unit'"
register: systemd_timers_result
changed_when: false
- name: Generate systemd timer names
ansible.builtin.set_fact:
healthcheck_systemd_timers: "{{ healthcheck_svc.checks | list_prefix_suffix('healthcheck@', '.timer') }}"
- name: Disable unused system timers
ansible.builtin.systemd_service:
name: "{{ item }}"
state: stopped
enabled: false
loop: "{{ systemd_timers_result.stdout_lines | difference(healthcheck_systemd_timers) }}"
become: true
- name: Enable the system timer
ansible.builtin.systemd_service:
name: healthcheck@{{ item }}.timer
name: "{{ item }}"
state: started
enabled: true
daemon_reload: true
loop: "{{ healthcheck_svc.checks }}"
loop: "{{ healthcheck_systemd_timers }}"
become: true

View file

@ -9,15 +9,15 @@ healthcheck_svc:
healthcheck_env:
USER_AGENT: healthcheck-bot for serguzim.net
HTTP_HC_UID: "{{ vault_healthcheck.hc_uid.http }}"
HTTP_HC_URL: "{{ opentofu.healthchecksio.healthcheck.http.ping_url }}"
MATRIX_SERVER: https://matrix.serguzim.me
MATRIX_SERVER_FEDTESTER: msrg.cc
MATRIX_HC_UID: "{{ vault_healthcheck.hc_uid.matrix }}"
MATRIX_HC_URL: "{{ opentofu.healthchecksio.healthcheck.matrix.ping_url }}"
MATRIX_TOKEN: "{{ vault_healthcheck.matrix.token }}"
MATRIX_ROOM: "{{ vault_healthcheck.matrix.room }}"
MAIL_HC_UID: "{{ vault_healthcheck.hc_uid.mail }}"
MAIL_HC_UID: "{{ opentofu.healthchecksio.healthcheck.mail.id }}"
MAIL_HOST: "{{ mailer.host }}"
MAIL_PORT: "{{ mailer.port }}"
MAIL_USER: "{{ vault_healthcheck.mailer.user }}"