73 lines
1.6 KiB
Bash
73 lines
1.6 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
|
|
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
|
|
systemctl is-enabled lisglosips.target lisglosips-backup.timer lisglosips-recording-finalize.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
|