59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
os="$(cat "${__global:?}/explorer/os")"
|
|
case "$os" in
|
|
alpine)
|
|
service=alertmanager
|
|
package=alertmanager
|
|
alertmanager_yml=/etc/alertmanager/alertmanager.yml
|
|
;;
|
|
|
|
ubuntu|debian)
|
|
service=prometheus-alertmanager
|
|
package=prometheus-alertmanager
|
|
alertmanager_yml=/etc/prometheus/alertmanager.yml
|
|
;;
|
|
*)
|
|
echo "This type does not supper $os. Exiting." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
SMTP_SMARTHOST=$(cat "${__object:?}/parameter/smtp-smarthost")
|
|
SMTP_FROM=$(cat "${__object:?}/parameter/smtp-from")
|
|
SMTP_USER=$(cat "${__object:?}/parameter/smtp-user")
|
|
SMTP_PASSWORD=$(cat "${__object:?}/parameter/smtp-password")
|
|
export SMTP_SMARTHOST SMTP_USER SMTP_FROM SMTP_PASSWORD
|
|
|
|
if [ -f "${__object:?}/parameter/receiver-email" ]; then
|
|
RECEIVER_EMAIL=$(cat "${__object:?}/parameter/receiver-email")
|
|
export RECEIVER_EMAIL
|
|
fi
|
|
if [ -f "${__object:?}/parameter/receiver-webhook" ]; then
|
|
RECEIVER_WEBHOOK=$(cat "${__object:?}/parameter/receiver-webhook")
|
|
export RECEIVER_WEBHOOK
|
|
fi
|
|
|
|
if [ -z "$RECEIVER_EMAIL" ] && [ -z "$RECEIVER_WEBHOOK" ]; then
|
|
echo "At least one receiver must be configured." >&2
|
|
exit 1
|
|
fi
|
|
|
|
REPEAT_INTERVAL=$(cat "${__object:?}/parameter/repeat-interval")
|
|
export REPEAT_INTERVAL
|
|
|
|
# Install Alertmanager.
|
|
__package "$package"
|
|
|
|
# Generate and deploy configuration
|
|
mkdir -p "${__object:?}/files"
|
|
"${__type:?}/files/alertmanager.yml.sh" > "${__object:?}/files/alertmanager.yml"
|
|
|
|
require="__package/$package" __file "$alertmanager_yml" \
|
|
--source "${__object:?}/files/alertmanager.yml" \
|
|
--mode 0644 \
|
|
--onchange "service $service restart"
|
|
|
|
require="__package/$package" __start_on_boot "$service"
|
|
#require="__package/$package" __service "$service" --action start
|