#!/bin/bash source ./data_utils.sh deploy_changes_to_remote() { # Schritt 1: Zielserver-Informationen abfragen TARGET_SERVER=$(dialog --inputbox "Geben Sie die IP-Adresse des Zielservers ein:" 10 50 3>&1 1>&2 2>&3) TARGET_USER="root" TARGET_PASSWORD=$(dialog --insecure --passwordbox "Geben Sie das Passwort für $TARGET_USER@$TARGET_SERVER ein:" 10 50 3>&1 1>&2 2>&3) if [[ -z "$TARGET_SERVER" || -z "$TARGET_PASSWORD" ]]; then dialog --msgbox "IP-Adresse oder Passwort fehlt. Vorgang abgebrochen." 10 30 return fi # Schritt 2: SSH-Schlüsselpaar prüfen oder erstellen if [[ ! -f "$HOME/.ssh/id_rsa" ]]; then dialog --msgbox "SSH-Schlüssel wird erstellt..." 10 30 ssh-keygen -t rsa -b 4096 -N "" -f "$HOME/.ssh/id_rsa" fi # Schritt 3: Öffentlichen Schlüssel auf dem Zielserver installieren dialog --msgbox "Installiere öffentlichen Schlüssel auf $TARGET_SERVER..." 10 30 sshpass -p "$TARGET_PASSWORD" ssh-copy-id -i "$HOME/.ssh/id_rsa.pub" "$TARGET_USER@$TARGET_SERVER" # Verbindung testen ssh -o BatchMode=yes "$TARGET_USER@$TARGET_SERVER" "echo 'SSH-Zugang ohne Passwort erfolgreich!'" &>/dev/null if [[ $? -ne 0 ]]; then dialog --msgbox "Fehler bei der SSH-Konfiguration. Bitte prüfen." 10 30 return fi dialog --msgbox "SSH-Zugang ohne Passwort erfolgreich." 10 30 # Schritt 4: Generiertes Skript erstellen remote_script="remote_apply_changes.sh" ./generate_remote_script.sh # Schritt 5: Skript auf Zielserver hochladen dialog --msgbox "Übertrage Skript auf den Zielserver..." 10 30 scp "$remote_script" "$TARGET_USER@$TARGET_SERVER:/tmp" # Schritt 6: Skript auf Zielserver ausführen dialog --msgbox "Führe das Skript auf dem Zielserver aus..." 10 30 ssh "$TARGET_USER@$TARGET_SERVER" "bash /tmp/$remote_script" dialog --msgbox "Änderungen wurden erfolgreich auf $TARGET_SERVER angewendet." 10 30 } deploy_changes_to_remote