For the complete documentation index, see llms.txt. This page is also available as Markdown.

Devolutions Server für Linux installieren

Devolutions Server ist für Linux mit Microsoft Kestrel als integriertem Webserver und Microsoft PowerShell 7 für die Installation über die Befehlszeile verfügbar. Das vorliegende Thema zeigt, wie Devolutions Server für Linux manuell mit Bash-Eingaben und PowerShell-Skripten installiert wird und wie darauf zugegriffen bzw. wie es entfernt wird.

Alternativ kann Devolutions Server automatisch mit den Skripten aus dem Devolutions GitHub ScriptLibrary Repository installiert werden.

Voraussetzungen installieren

  1. Wenn Microsoft SQL Server noch nicht installiert ist, führen Sie die folgende Bash-Eingabe aus, wobei die Variable MSSQL_SA_PASSWORD auf ein starkes Passwort geändert wird:

    source /etc/os-release
    curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/microsoft-prod.gpg
    curl -fsSL https://packages.microsoft.com/config/ubuntu/$VERSION_ID/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
    sudo apt-get update
    sudo apt-get install -y mssql-server
    sudo MSSQL_SA_PASSWORD="mystrongpassword" MSSQL_PID="evaluation" /opt/mssql/bin/mssql-conf -n setup accept-eula
    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    sudo systemctl restart mssql-server

    MSSQL_PID ist in diesem Beispiel auf evaluation gesetzt, hier kann jedoch stattdessen ein Produktschlüssel eingegeben werden.

  1. Führen Sie diese Bash-Eingabe aus, um PowerShell 7 zu installieren:

    sudo apt-get update
    sudo apt-get install -y wget apt-transport-https software-properties-common
    source /etc/os-release
    wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    sudo apt-get update
    sudo apt-get install -y powershell

Stellen Sie sicher, dass die Installation in einem Verzeichnis erfolgt, das für den aktuellen Benutzer zugänglich ist, da die Befehlszeile wget ein .deb-Paket in dieses Verzeichnis herunterlädt.

  1. Wählen Sie, ob das Devolutions.PowerShell-Modul für den aktuellen Benutzer oder für alle Benutzer installiert werden soll.

    • Für den aktuellen Benutzer (Speicherort: /.local/share/powershell/Modules) führen Sie aus:

    • Für alle Benutzer (Speicherort: /opt/microsoft/powershell/7/Modules) führen Sie aus:

    Wahrscheinlich erscheint eine Warnung, dass die Installation aus einem nicht vertrauenswürdigen Repository stammt. Das Modul wird in der PowerShell Gallery gehostet, dem offiziellen, von Microsoft verwalteten Speicherort für PowerShell-Module. Um diese Warnung künftig zu vermeiden, führen Sie aus:

    Obwohl nicht erforderlich, wird die Bereitstellung separater Benutzer und Gruppen für Devolutions Server dringend empfohlen. Hier ist eine Bash-Eingabe, um einen Benutzer und eine Gruppe zu erstellen, die beide dvls heißen, wobei das Installationsverzeichnis auf /opt/devolutions/dvls gesetzt ist:

Devolutions Server für Linux herunterladen und installieren

  1. Führen Sie das nachstehende PowerShell-Skript aus, um die neueste Version von Devolutions Server für Linux herunterzuladen und die .tar.gz-Datei in den Speicherort /opt/devolutions/dvls zu extrahieren:

    Es ist am besten, wenn Devolutions Server über TLS antworten kann. Falls noch kein Zertifikat vorhanden ist, kann mit dieser Bash-Eingabe schnell eines generiert werden:

    Im obigen Beispiel verwendet der subjectAltName DNS:. Um nur über eine IP zu antworten, verwenden Sie stattdessen IP:.

Beachten Sie, dass das generierte .pfx-Zertifikat kein Passwort hat.

  1. Führen Sie mithilfe des Devolutions.PowerShell-Moduls die Installation von Devolutions Server über PowerShell aus. Passen Sie dabei unbedingt die hier aufgeführten Werte an:

    • MYHOST

    • MSSQLHOST

    • DBUSERNAME

    • YOURSTRONGPASSWORD

    • MYEMAIL

    Wenn bereits ein Zertifikat generiert wurde, ändern Sie die Datei appsettings.json mit diesem PowerShell-Skript, damit Kestrel über TLS antworten kann:

    Um den Hintergrundbetrieb von Devolutions Server für Linux zu ermöglichen, wird empfohlen, mit dieser Bash-Eingabe eine Unit-Datei für systemd zu erstellen:

  2. Um Devolutions Server zu starten, führen Sie aus:

Auf Devolutions Server für Linux zugreifen

Standardmäßig lauscht Devolutions Server für Linux auf Port 5000 auf der IP oder dem Hostnamen des Installationssystems, was meist so aussieht: http://MYHOST:5000. Beachten Sie, dass beim ersten Start OAuth-Fehler auftreten können, wenn versucht wird, von einer nicht konfigurierten URL auf Devolutions Server zuzugreifen. Fügen Sie in diesem Fall weitere URIs hinzu, auf denen gelauscht wird, oder ändern Sie die primäre URI, indem Sie das folgende Skript in PowerShell ausführen:

Wenn Devolutions Server außerhalb des Installationssystems weiterhin nicht erreichbar ist, prüfen Sie, ob die erforderlichen Firewall-Ports geöffnet sind, indem Sie Uncomplicated Firewall zur Eingabe hinzufügen, zum Beispiel: sudo ufw allow 5000.

Devolutions Server-Verschlüsselungsschlüssel importieren

Export aus einer bestehenden Windows-Installation

Import in eine neue Linux-Installation

Devolutions Server für Linux aktualisieren

Extrahieren Sie das neue .tar.gz-Archiv nicht direkt über /opt/devolutions/dvls. Dadurch werden appsettings.json und encryption.config überschrieben, wodurch der Dienst nicht mehr starten kann und bestehende Daten möglicherweise nicht mehr entschlüsselt werden können. Befolgen Sie immer die auf dieser Seite beschriebene Aktualisierungsmethode.

  1. Sichern Sie die Datenbank. So geht das für Microsoft SQL Server (Linux oder remote):

    Der vollständige Pfad zu sqlcmd vermeidet den Fehler "command not found" in Non-Login-Shells, in denen /etc/profile.d/mssql-tools.sh nicht eingelesen wurde.

    -C vertraut dem Serverzertifikat (erforderlich für lokale SQL Server-Installationen, die ein selbstsigniertes Zertifikat verwenden).

    Sichern Sie in ein Verzeichnis, in das der MSSQL-Benutzer schreiben kann. /var/opt/mssql/data/ funktioniert von Anfang an.

  2. Stellen Sie sicher, dass die .bak-Datei vorhanden und nicht leer ist, bevor Sie mit dem nächsten Schritt fortfahren.

  3. Stoppen Sie den Devolutions Server-Dienst mit dem folgenden Skript:

  4. Sichern Sie die Installations- und Konfigurationsdateien. Beachten Sie, dass /opt/devolutions/dvls im Modus 550 vorliegt und dvls:dvls gehört, weshalb die Backup-Cmdlets als root ausgeführt werden müssen. Starten Sie PowerShell mit sudo pwsh und fügen Sie dann dieses Skript ein:

    • Backup-DPSConfigurationFiles sichert: appsettings.json, web.config und encryption.config.

    • Backup-DPSInstallationFiles sichert benutzerdefinierte Ordner, den Ordner für die Anomalieerkennung und alle von Benutzern hinzugefügten Assets.

  5. Leeren Sie das Installationsverzeichnis mit Ausnahme von App_data, da dieses Laufzeitstatus enthält, der Upgrades übersteht. Verwenden Sie dazu dieses Skript:

    Verwenden Sie --strip-components nur, wenn das Archiv einen Ordner auf oberster Ebene hat.

  6. Stellen Sie die Konfiguration und benutzerdefinierten Daten wieder her. In diesem Schritt werden appsettings.json (DB-Verbindungszeichenfolge) und web.config in die neue Installation zurückgelegt. Da encryption.config in Schritt #5 bereits innerhalb von App_Data/ gesichert wurde, legt Restore-DPSConfigurationFiles sie nicht in das Installationsstammverzeichnis, weil sie sich unter Linux nicht dort befindet. Hier ist das Wiederherstellungsskript:

  7. Rufen Sie die Verbindungszeichenfolgen aus der wiederhergestellten appsettings.json ab:

    Update-DPSDatabase gibt bei Erfolg keine Ausgabe aus. Überprüfen Sie den Erfolg, indem Sie prüfen, ob der Befehl den Exit-Code 0 zurückgegeben hat und ob das Journal nach dem Starten des Dienstes in Schritt #9 Einträge mit Migration done with status Done ohne [ERR]-Zeilen anzeigt.

  8. Wenden Sie Besitzrechte und Berechtigungen erneut an:

  9. Starten Sie den Dienst und prüfen Sie, ob er korrekt funktioniert:

Fehlerbehebung

  • Dienst startet nicht, appsettings.json fehlt oder ist leer: Stellen Sie sie aus $BackupConfig/appsettings.json wieder her und wiederholen Sie die Schritte #8 und 9.

  • Anmeldung funktioniert, aber Einträge können nicht entschlüsselt werden: encryption.config wurde nicht wiederhergestellt. Kopieren Sie $BackupConfig/encryption.config nach $DVLSPath/App_Data/, korrigieren Sie die Berechtigungen (chown dvls:dvls und chmod 660) und starten Sie dann neu.

  • DB-Schemafehler zur Laufzeit: Update-DPSDatabase wurde übersprungen oder ist fehlgeschlagen. Wiederholen Sie Schritt #7.

  • Vollständiges Rollback: Stoppen Sie den Dienst (siehe Schritt #3), leeren Sie /opt/devolutions/dvls mit Ausnahme von App_Data/ (Schritt #5), kopieren Sie den Inhalt von $BackupInstall zurück nach /opt/devolutions/dvls, stellen Sie appsettings.json aus $BackupConfig wieder her, wenden Sie Besitzrechte und Berechtigungen aus Schritt #8 erneut an, stellen Sie die DB aus der in Schritt #1 erstellten .bak wieder her und starten Sie dann neu.

Devolutions Server entfernen

Um Devolutions Server zu entfernen, führen Sie die nachstehende Bash-Eingabe aus und passen Sie sie an das System an. Dieses Skript nutzt das DbaTools PowerShell-Modul, um das Entfernen der MSSQL-Datenbank zu erleichtern. Es geht davon aus, dass localhost die MSSQL-Installation und dvls der Datenbankname ist.

Zuletzt aktualisiert

War das hilfreich?