64 lines
1.6 KiB
Bash
Executable file
64 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SERVICE_NAME="ingress.tjo.cloud"
|
|
SERVICE_VERSION="$(git describe --tags --always --dirty)"
|
|
CLOUD_REGION="$(hostname -s)"
|
|
|
|
SERVICE_ACCOUNT_USERNAME=$(jq -r ".service_account.username" /etc/tjo.cloud/meta.json)
|
|
SERVICE_ACCOUNT_PASSWORD=$(jq -r ".service_account.password" /etc/tjo.cloud/meta.json)
|
|
|
|
##
|
|
# Dependencies
|
|
apt update -y
|
|
|
|
apt install -y \
|
|
gpg \
|
|
git \
|
|
webhook \
|
|
nginx \
|
|
nginx-extras \
|
|
libnginx-mod-http-geoip2 \
|
|
libnginx-mod-stream-geoip2
|
|
|
|
# Grafana Alloy
|
|
mkdir -p /etc/apt/keyrings/
|
|
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | tee /etc/apt/keyrings/grafana.gpg >/dev/null
|
|
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
|
|
apt update -y
|
|
apt get install -y alloy
|
|
|
|
##
|
|
# Copy Sysmtemd service/units
|
|
cp -r root/etc/systemd/* /
|
|
|
|
##
|
|
# Ensure services are enabled
|
|
systemctl enable --now nginx webhook alloy
|
|
|
|
##
|
|
# Configure Alloy
|
|
cp -r root/etc/alloy/* /etc/alloy/
|
|
cp -r root/etc/default/alloy /etc/default/alloy
|
|
# Set Attributes
|
|
ATTRIBUTES=""
|
|
ATTRIBUTES+="service.name=${SERVICE_NAME},"
|
|
ATTRIBUTES+="service.version=${SERVICE_VERSION},"
|
|
ATTRIBUTES+="cloud.region=${CLOUD_REGION}"
|
|
echo "OTEL_RESOURCE_ATTRIBUTES=${ATTRIBUTES}" >>/etc/default/alloy
|
|
# Set Credentials
|
|
{
|
|
echo "ALLOY_USERNAME=${SERVICE_ACCOUNT_USERNAME}"
|
|
echo "ALLOY_PASSWORD=${SERVICE_ACCOUNT_PASSWORD}"
|
|
} >>/etc/default/alloy
|
|
systemctl reload alloy
|
|
|
|
##
|
|
# Configure NGINX
|
|
cp -r root/etc/nginx/* /etc/nginx/
|
|
systemctl reload nginx
|
|
|
|
##
|
|
# Configure Webhook
|
|
cp -r root/etc/webhook/* /etc/webhook/
|
|
systemctl reload webhook
|