Files

74 lines
1.8 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
exec sudo "$0" "$@"
fi
echo "== LisgloSIPS B startup =="
hostname
systemctl start lisglosips.target
required_services=(
tailscaled
mysql
redis-server
lisglosips-caller-analytics-redis
postgresql
nginx
opensips
rtpengine-daemon
rtpengine-recording-daemon
lisglosips-redis-auth-proxy
lisglosips@api
lisglosips@cdr-worker
lisglosips@recording-worker
lisglosips@config-publisher
heplify-server
homer-app
lisglosips-prometheus
grafana-server
lisglosips-node-exporter
lisglosips-mysqld-exporter
lisglosips-postgres-exporter
lisglosips-redis-exporter
)
for attempt in $(seq 1 30); do
missing=()
for unit in "${required_services[@]}"; do
systemctl --quiet is-active "$unit" || missing+=("$unit")
done
[ "${#missing[@]}" -eq 0 ] && break
[ "$attempt" -eq 30 ] && {
printf 'startup timeout; inactive services: %s\n' "${missing[*]}" >&2
exit 1
}
sleep 2
done
nginx -t
opensips -C -f /etc/opensips/opensips.cfg >/dev/null
echo "== release =="
readlink -f /opt/lisglosips/current
echo "== services =="
systemctl is-active "${required_services[@]}"
echo "== timers =="
systemctl is-active lisglosips-backup.timer lisglosips-recording-finalize.timer lisglosips-caller-analytics-maintenance.timer
systemctl is-enabled lisglosips.target lisglosips-backup.timer lisglosips-recording-finalize.timer lisglosips-caller-analytics-maintenance.timer \
lisglosips@api lisglosips@cdr-worker lisglosips@recording-worker lisglosips@config-publisher
echo "== api ready =="
curl -fsS http://127.0.0.1:3000/api/v2/health/ready
echo
echo "== preflight =="
/opt/lisglosips/current/infra/server-b/s30/lisglosips-release-preflight.sh
echo "== failed units =="
systemctl --failed --no-pager