Files
ground-control-install/secondary/join.sh
T

23 lines
1.4 KiB
Bash

#!/bin/sh
# Zweiten Standort beitreten (sekundaerer DNS). Ein Aufruf, idempotent.
# GC_SECONDARY="<zone>@<primaer-ip>:53" GC_BIND_IP=<oeffentliche-IP> sh join.sh
# Das Projekt heisst standardmaessig gc-secondary (GC_PROJECT aenderbar). Beruehrt keine anderen Container, Netze oder Systemeinstellungen.
set -eu
: "${GC_SECONDARY:?GC_SECONDARY=zone@primaer-ip:53 setzen}"
P="${GC_PROJECT:-gc-secondary}"
D="${GC_DIR:-$HOME/$P}"
mkdir -p "$D" && cd "$D"
curl -fsSL https://git1.mrmoe.de/mscadm/ground-control-install/raw/branch/main/secondary/docker-compose.yml -o docker-compose.yml
printf 'GC_PROJECT=%s\nGC_SECONDARY=%s\nGC_BIND_IP=%s\n' "$P" "$GC_SECONDARY" "${GC_BIND_IP:-0.0.0.0}" > .env
IP="${GC_BIND_IP:-}"
if [ -n "$IP" ] && ss -lun 2>/dev/null | awk '{print $5}' | grep -Eq "^($IP|0\.0\.0\.0|\*):53$"; then echo "FEHLER: $IP:53 ist belegt (nicht von uns): "; ss -lunp | grep ':53 ' ; exit 1; fi
# Eigene, leere Docker-Konfiguration: das Image ist oeffentlich lesbar; evtl. vorhandene (veraltete) Registry-Logins
# des Hosts duerfen den anonymen Pull nicht stoeren und werden nicht veraendert.
export DOCKER_CONFIG="$D/.docker"; mkdir -p "$DOCKER_CONFIG"
[ -d "$HOME/.docker/cli-plugins" ] && ln -sfn "$HOME/.docker/cli-plugins" "$DOCKER_CONFIG/cli-plugins" || true
docker compose pull -q
docker compose up -d
sleep 3
docker compose ps
docker logs --tail 5 "${P}-dns" 2>&1 | cut -c1-160