Deploy: SSH ControlMaster — Passwort nur einmal eingeben
Öffnet Master-Verbindung am Anfang, rsync und ssh nutzen denselben Socket. Cleanup via trap bei normalem Ende und bei Fehler. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
50bdab6112
commit
e31549e24f
1 changed files with 11 additions and 2 deletions
|
|
@ -7,19 +7,28 @@ REMOTE_USER="${USER}"
|
|||
REMOTE_HOST="jamulix.de"
|
||||
REMOTE_DIR="/var/www/jamulix.de/html"
|
||||
LOCAL_DIR="/home/dschlueter/neue_jamulix.de_landing_page/jamulix.de_webpage_2"
|
||||
SSH_SOCKET="/tmp/ssh-jamulix-deploy-$$"
|
||||
|
||||
cleanup() {
|
||||
ssh -S "$SSH_SOCKET" -O exit "$REMOTE_USER@$REMOTE_HOST" 2>/dev/null || true
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "Starte Deployment auf $REMOTE_HOST..."
|
||||
|
||||
# Einmalige Authentifizierung — alle folgenden SSH/rsync-Aufrufe nutzen diesen Socket
|
||||
ssh -M -S "$SSH_SOCKET" -o "ControlPersist=5m" -fN "$REMOTE_USER@$REMOTE_HOST"
|
||||
|
||||
cd "$LOCAL_DIR"
|
||||
|
||||
echo "Baue die Seite..."
|
||||
npm run build
|
||||
|
||||
echo "Synchronisiere landingpage/ nach $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/landingpage/..."
|
||||
rsync -av --delete landingpage/ "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/landingpage/"
|
||||
rsync -av --delete -e "ssh -S $SSH_SOCKET" landingpage/ "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/landingpage/"
|
||||
|
||||
echo "Setze symbolischen Link: index.html → landingpage/index.html"
|
||||
ssh "$REMOTE_USER@$REMOTE_HOST" "rm -f '$REMOTE_DIR/index.html' && ln -s landingpage/index.html '$REMOTE_DIR/index.html'"
|
||||
ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "rm -f '$REMOTE_DIR/index.html' && ln -s landingpage/index.html '$REMOTE_DIR/index.html'"
|
||||
|
||||
echo ""
|
||||
echo "Deployment abgeschlossen: https://jamulix.de"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue