From 47d5dd3e9c169a9ae3651e0b9148345921aee458 Mon Sep 17 00:00:00 2001 From: Joachim Desroches Date: Tue, 16 Nov 2021 13:47:02 +0100 Subject: [PATCH] Add VEEAM file age exporter. --- .../prometheus-veeam-exporter.service.sh | 17 ++++++++++++++ .../gencode-remote | 20 ++++++++++++++++ type/__prometheus_veeam_exporter/manifest | 23 +++++++++++++++++++ .../parameter/required | 2 ++ type/__prometheus_veeam_exporter/singleton | 0 5 files changed, 62 insertions(+) create mode 100755 type/__prometheus_veeam_exporter/files/prometheus-veeam-exporter.service.sh create mode 100755 type/__prometheus_veeam_exporter/gencode-remote create mode 100755 type/__prometheus_veeam_exporter/manifest create mode 100644 type/__prometheus_veeam_exporter/parameter/required create mode 100644 type/__prometheus_veeam_exporter/singleton diff --git a/type/__prometheus_veeam_exporter/files/prometheus-veeam-exporter.service.sh b/type/__prometheus_veeam_exporter/files/prometheus-veeam-exporter.service.sh new file mode 100755 index 0000000..acb0079 --- /dev/null +++ b/type/__prometheus_veeam_exporter/files/prometheus-veeam-exporter.service.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +BACKUPDIR=$(cat "${__object:?}/parameter/backupdir") + +cat << EOF +[Unit] +Description=e-Durable's VEEAM upload date exporter +After=network.target + +[Service] +Type=simple +User=veeam +ExecStart=/opt/prometheus-veeam-exporter/venv/bin/python /opt/prometheus-veeam-exporter/prometheus-veeam-exporter ${BACKUPDIR:?} + +[Install] +WantedBy=multi-user.target +EOF diff --git a/type/__prometheus_veeam_exporter/gencode-remote b/type/__prometheus_veeam_exporter/gencode-remote new file mode 100755 index 0000000..73c45dd --- /dev/null +++ b/type/__prometheus_veeam_exporter/gencode-remote @@ -0,0 +1,20 @@ +#!/bin/sh + +VCS_TAG=$(cat "${__object:?}/parameter/version") +VCS_URL="https://code.recycled.cloud/RecycledCloud/prometheus-veeam-exporter/raw/tag/${VCS_TAG:?}/prometheus-veeam-exporter" + +cat << EOF +cd /opt/prometheus-veeam-exporter + +# Fetch sources +curl "$VCS_URL" -o prometheus-veeam-exporter + +# Install virtualenv and dependencies +python3 -m venv venv +. venv/bin/activate + +pip3 install prometheus_client datetime + +# Start service +systemctl restart prometheus-veeam-exporter +EOF diff --git a/type/__prometheus_veeam_exporter/manifest b/type/__prometheus_veeam_exporter/manifest new file mode 100755 index 0000000..1c31b60 --- /dev/null +++ b/type/__prometheus_veeam_exporter/manifest @@ -0,0 +1,23 @@ +#!/bin/sh + +os=$(cat "${__global:?}/explorer/os") + +mkdir -p "${__object:?}/files" +case "$os" in +debian | ubuntu) + __package python3-venv + __package curl + + "${__type:?}/files/prometheus-veeam-exporter.service.sh" \ + >"${__object:?}/files/prometheus-veeam-exporter.service" + __systemd_unit prometheus-veeam-exporter.service \ + --source "${__object:?}/files/prometheus-veeam-exporter.service" \ + --enablement-state enabled + ;; +*) + echo "$os is not supported by this type. Exiting" >&2 + exit 1 + ;; +esac + +__directory /opt/prometheus-veeam-exporter diff --git a/type/__prometheus_veeam_exporter/parameter/required b/type/__prometheus_veeam_exporter/parameter/required new file mode 100644 index 0000000..1e7da0a --- /dev/null +++ b/type/__prometheus_veeam_exporter/parameter/required @@ -0,0 +1,2 @@ +backupdir +version diff --git a/type/__prometheus_veeam_exporter/singleton b/type/__prometheus_veeam_exporter/singleton new file mode 100644 index 0000000..e69de29