<
rsync deployment, 2.0+
Dokumentation

Installation und Konfiguration – FirstSpirit rsync-Deployment

Mithilfe des rsync-Deployments können Sie über das rsync-Protokoll Inhalte publizieren, die mit FirstSpirit erstellt wurden. Das rsync-Deployment ist in der FirstSpirit Cloud verfügbar und kann direkt eingesetzt werden.

Außer der rsync-Funktionalität bietet FirstSpirit die Möglichkeit, Inhalte innerhalb lokaler Dateisysteme, oder aber mithilfe von FTP zu veröffentlichen. Diese beiden Methoden sind weniger bequem, bzw. weniger sicher als rsync:

  • Nach dem Verteilen in lokalen Dateisystemen müssen die Inhalte manuell verarbeitet werden.
  • Die Übertragung via FTP entspricht nicht mehr den aktuellen Sicherheitsanforderungen und sollte nur innerhalb lokaler Netzwerke eingesetzt werden.

Beide Probleme werden durch das rsync-Deployment gelöst:

  • Das rsync-Protokoll verwendet für die Absicherung der Verbindung zu Zielservern außerhalb der FirstSpirit Cloud das SSH-Protokoll mit Public-Key-Authentifizierung.
  • Es kann große Datenmengen effizient und datensparsam verarbeiten: Wenn nur ein Teil der Inhalte verändert wurde, wird nur das notwendige Delta übertragen.

Der Zielserver muss SSH-Verbindungen annehmen können. Im Übrigen sind die korrekte Konfiguration und der Betrieb des Zielservers aber stark abhängig von dessen Betriebssystem.


rsync-Deployment-Aktion

Für die Verwendung der rsync-Funktionalität müssen Sie im ServerManager die rsync-Aktion hinzufügen und die Verbindungsdaten konfigurieren.

  • Fügen Sie als Projekt-Admin die rsync-Deployment-Aktion im ServerManager hinzu.
    ServerManager > Projekt > Eigenschaften > [Projektauswahl] > Auftragsverwaltung > [Auftrag bearbeiten] > Tab Aktionen > Hinzufügen > Veröffentlichung über rsync

  • Konfigurieren Sie im Konfigurations-Fenster den Bereich Verbindungsdaten:

Pflichtfelder:

  • Ziel-Hostname
  • Zielpfad
  • SSH-Benutzerkonto: Benutzername für die Anmeldung

Feld SSH-Schlüssel-Management

  • Hinterlegen Sie unter Schlüsseldaten als Text den privaten SSH-Schlüssel für die Verbindung.
    Hinweis: Nach dem Speichern wird der private SSH-Schlüssel nicht mehr in diesem Fenster angezeigt, ist aber weiterhin in Projektdaten und -exporten vorhanden.

Der Schlüssel liegt für die Übertragung im Klartext vor. Er kann nicht mit einer Passphrase geschützt werden. Die eingesetzte Obfuskation des privaten Schlüssels bietet keinen vollständigen Schutz. Mit einer restriktiven Rechtevergabe für Ihre Projekte und z. B. einer Limitierung des Zielserver-Benutzerkontos auf das rsync-Kommando können Sie die Sicherheit erhöhen.
In der Auftragsverwaltung können Sie rsync und SSH individuell konfigurieren. Sie können Parameter über die UI verwenden und in Freitextfeldern eigene Werte eingeben. Die Eingabewerte sind abhängig vom Zielserver, eine Dokumentation finden Sie z. B. in den man-Pages des Zielservers.

Erste Verbindung

Für eine sichere Verbindung muss bei jedem Verbindungsaufbau der Fingerabdruck des öffentlichen Schlüssels eines SSH-Servers geprüft werden. Bei Nichtübereinstimmung wird die Verbindung abgelehnt. Sie müssen deshalb den Fingerabdruck für jeden SSH-Server speichern.

Deaktivieren Sie dafür im Bereich ssh vor der ersten Verbindung den unten angegebenen Parameter, bauen Sie eine Verbindung auf und aktivieren Sie ihn direkt danach wieder. Wiederholen Sie die Schritte für die erste Verbindung auf jedem Cloud-Server:

  • Deaktivieren Sie die Checkbox Always verify remote host key [-oStrictHostKeyChecking=yes].
  • Tragen Sie im Feld Zusätzliche SSH-Parameter als Freitext ein:
    -oStrictHostKeyChecking=no
  • Führen Sie die rsync-Aktion aus.
    → Die erste Verbindung zum Cloud-Server wird aufgebaut und der Fingerprint wird für spätere Verbindungen gespeichert.
  • Aktivieren Sie die Checkbox Always verify remote host key [-oStrictHostKeyChecking=yes] und entfernen Sie im Feld Zusätzliche SSH-Parameter den Befehl -oStrictHostKeyChecking=no.

Aufträge in weiteren Projekten können direkt mit StrictHostKeyChecking=yes verwendet werden.

Öffentliche SSH-Schlüssel ändern sich in der Regel nicht. Wenn ein öffentlicher SSH-Schlüssel ausgetauscht werden muss, z. B. beim Ausmustern alter RSA-Schlüssel, erstellen Sie ein Ticket beim Crownpeak-Support.


Löschen von Dateien

Zum Löschen von Dateien gibt es mehrere Anwendungsfälle: z. B. eine vollständige Synchronisierung der Dateistruktur zwischen dem Quell- und dem Zielserver oder ein manuelles Löschen von Verzeichnissen oder einzelnen Dateien auf dem Zielserver.

Zum vollständigen Synchronisieren der Dateistrukturen:

  • Aktivieren Sie im Bereich rsync die Checkbox Delete extraneous files on destination path [--delete].
    Die Checkbox ist standardmäßig inaktiv.
    → Beim Ausführen des rsync-Auftrags werden Verzeichnisse und Dateien gelöscht, wenn sie auf dem Zielserver, aber nicht auf dem Quellserver existieren.

Zum punktuellen Löschen von Dateien:

  • Aktivieren Sie im Bereich delete files die Checkbox Gelistete Dateien im Zielpfad entfernen.
  • Hinterlegen Sie im Feld delete-Kommando den Löschbefehl Ihres Zielservers.
    Z.B. "rm" für Linux-Server.
  • Erstellen Sie eine .txt-Datei – die Löschliste – mit den Pfaden der Verzeichnisse und Dateien, die gelöscht werden sollen.
  • Platzieren Sie die Löschliste im Verzeichnis, das Sie im Feld Zielpfad im Bereich Verbindungsdaten angegeben haben.
  • Geben Sie im Bereich delete files im Feld Dateiname der Löschliste den Dateinamen inkl. der Dateiendung an.
    Z.B. "deletelist.txt"
    → Beim Ausführen des rsync-Auftrags werden Verzeichnisse und Dateien gelöscht, die in der Löschliste aufgeführt sind.

Die Löschliste kann z. B. durch eine spezielle vorgelagerte Aktion erstellt werden, welche die deletedPageInfo aus der Delta-Generierung ausliest.
Ein Fehler wird angezeigt,
  • wenn die Checkbox Gelistete Dateien im Zielpfad entfernen aktiv ist, aber im Verzeichnis, das Sie im Feld Zielpfad im Bereich Verbindungsdaten angegeben haben, keine übereinstimmende Löschliste gefunden werden kann.
  • wenn eine Datei oder ein Verzeichnis, das in der Löschliste aufgeführt ist, auf dem Zielserver nicht unter dem angegebenen Zielpfad gefunden werden kann.