Zum Inhalt

Container-Update

Diese Anleitung beschreibt den Prozess des Container-Updates für das charly-System auf macOS.
Sie umfasst die Sicherung der Daten vom alten Server, die Installation der Container (charly-VM) auf dem neuen Server, das Update anhand der gesicherten Daten von charly in die Container und die notwendigen Schritte zur Verifizierung.

flowchart TD
    A[Alter Server] -->|Daten-Export| B[ISO-Datei]
    B -->|Kopieren auf| C[Neuer Server]
    C -->|Container-Installation & Update| D[charly im Container]

Voraussetzungen:

  • Ausreichend Speicherplatz auf dem Quellserver
  • Administrator-Zugriff auf den Server
  • Terminal mit Zsh

WICHTIG

Der Benutzer muss Administrator auf dem macOS sein. Und der Benutzer im Terminal muss der Nutzer sein, der auch unter macOS angemeldet ist.

Das charly-Server-Skript

Prüfen Sie ob das charly-Server-Skript auf Ihrem alten Server installiert ist:

charly-server

Falls nicht können Sie es mit folgendem Befehl herunterladen:

curl -o charly-server-install.zsh https://charly-cdn-solutio.s3.amazonaws.com/release/macos/charly-server-install.zsh
Mit dem folgenden Befehl installieren Sie das charly-Server-Skript:
chmod +x charly-server-install.zsh
./charly-server-install.zsh 

Export auf dem Server

Homebrew installieren

Prüfen Sie auf dem alten Server, ob homebrew installiert ist:

brew --version

Wenn keine Version zurückgeliefert wird (sondern command not found), muss homebrew auf dem alten Server mit dem folgenden Befehl installiert werden:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

WICHTIG

Am Ende fordert die brew-Installation auf, noch einige Dinge als "Next steps" in der Kommandozeile einzugeben. Führen Sie die 3 Kommandos nacheinander aus.

Vorbereitung des Exports

Optional kann ein Vorbereitungs-Schritt ausgeführt werden. Bei diesem werden nötige homebrew Pakete aktualisiert & installieren. Dies wird auch bei den nachfolgenden Aufrufen export durchgeführt, sodass dieser Schritt übersprungen werden kann.
Wir empfehlen die Durchführung dieses Schrittes, um beim eigentlichen Export Zeit zu sparen.

Führen Sie dafür folgenden Befehl aus:

charly-server export prepare

Parameter für den Export

Mit dem folgenden Befehl können Sie sich über die Parameter für den export informieren:

charly-server export -help

Die wichtigsten Parameter für den export sind:

Parameter Beschreibung Standard
export_path Zielverzeichnis für den Export ~/Documents/charly-server/export
iso_file_path Pfad zur ISO Datei (per default liegt die Datei im export_path, bei einem Serverumzug können Sie aber auch direkt ein Netzwerklaufwerk angeben) /export.iso
solutio_path Pfad zum solutio Installationsverzeichnis (nur nötig falls nicht automatisch gefunden) /Applications/Solutio
postgresql_path Pfad zur PostgreSQL Datenbank (nur nötig falls nicht automatisch gefunden) /Library/solutio_postgresql

Dry-Run-Modus für Konfigurationsüberprüfung für den Export

Führen Sie zunächst auf dem alten Server einen Dry-Run-Export durch, um die Konfiguration zu überprüfen und mögliche Fehler zu identifizieren. Dies kann im laufenden Betrieb erfolgen:

charly-server export dryrun -export_path /path/to/export

Der -export_path is der Pfad, in dem die zu exportierenden Daten und final die ISO-Datei abgelegt werden. Geben Sie einen Pfad zu einem leeren Ordner an.

TIPP

Der Dry-Run versucht, alle möglichen Fehlerquellen zu identifizieren, die beim Export der Daten und beim Container-Update auftreten könnten. Es wird nur temporär eine ISO-Datei erstellt, damit diese später nicht fälschlicherweise verwendet wird. Es wird eine Log-Datei angelegt, in der alle gefundenen Probleme dokumentiert werden. Dafür überspringt der Dry-Run Fehler, um eine vollständige Übersicht über potenzielle Probleme zu erhalten.

Empfehlung:

  1. Sie können den DryRun auch während des laufenden Praxisbetriebs durchführen.
  2. Ermitteln Sie die Dauer des Dry-Runs aus der Log-Datei anhand der Timestamps (Anfang und Ende der Log-Datei).
  3. Planen Sie für den tatsächlichen Migrationsprozess etwa die gleiche Zeit ein (kein laufender Praxisbetrieb dabei möglich).

WICHTIG

Das Skript prüft, ob im charly-Ordner sehr viele unsichtbare Dateien existieren und gibt entsprechend eine Warnung aus. Die Dateipfade der unsichtbaren Dateien werden in einer Datei invisible_files.txt gespeichert und es erscheint eine Warnung.

Wenn Sie überflüssige Dateien entdecken und diese ein Schema haben, zB. .backupXYZ, dann könnten diese mglw. mit Vorsicht gelöscht werden via:

find /Applications/Solutio/Client/Charly/ -type f -name '.backup*' -delete
Aber auf keinen Fall '*' oder '.*' verwenden, da dies alle bzw. alle unsichtbaren Dateien löschen würde.

Vollständiger Export für das Container-Update mit Deaktivierung des Alt-Systems

Nach der Vorbereitung des Exports und der erfolgreichen Überprüfung können Sie den vollständigen Export auf dem alten Server durchführen. charly kann in dieser Zeit nicht verwendet werden. Daher planen Sie dies bitte außerhalb Ihres laufenden Praxisbetriebes ein.

Mit dem folgenden Befehl starten Sie den Export und damit die Generierung der ISO-Datei.

charly-server export normal -export_path /path/to/export

Bei diesem Export-Modus wird auch die bisherige charly-Server Installation deaktivert: - die ncjs-Services werden beendet und deaktivert - der SMB-Share der Ablage wird entfernt

Das Deaktivieren der Postgres-Datenbank muss nach dem Export teilweise manuell durchgeführt werden (hier am Beispiel von PostgreSQL 13):

sudo launchctl unload -w /Library/LaunchDaemons/postgresql-13.plist
sudo mv /Library/LaunchDaemons/postgresql-13.plist /Library/LaunchDaemons/postgresql-13.plist_off

Die Pfade können auf dem System je nach Version variieren. Passen Sie diese bitte entsprechend an.

WICHTIG

  • Es wird ein vollständiges Backup erzeugt, also von allen Datenbanken und den Ablage-Daten.
  • Die Dauer dieses Prozesses kann erheblich sein, besonders bei großen Datenmengen.
  • Planen Sie basierend auf den Ergebnissen des Dry-Runs genügend Zeit dafür ein.

Nach dem Export

  • Überprüfen Sie das generierte Logfile auf mögliche Probleme oder Warnungen.
  • Stellen Sie sicher, dass die ISO-Datei erfolgreich erstellt wurde und am angegebenen Speicherort vorhanden ist.

Installation und Update von charly in die Container (charly-VM) auf dem neuen Server oder demselben Server

Bitte beachten Sie, dass die Installation der Container auf dem macOS Betriebssystem erfolgen muss, das direkt auf der Bare-Metal-Hardware läuft. Es ist nicht möglich, das System in einer virtualisierten macOS Umgebung zu installieren.

Für eine vollständige Anleitung zur Installation der charly Software unter macOS in einer VM, einschließlich aller erforderlichen Schritte und Konfigurationen, lesen Sie bitte die Installationsanleitung.

Installation vorbereiten

Wenn Sie einen neuen Server verwenden: 1. Kopieren Sie die erstellte ISO-Datei auf Ihren neuen Server. 2. Installieren Sie das charly-Server-Skript siehe oben

Bei Verwendung desselben Servers sind diese Schritt nicht notwendig.

Installieren Sie die notwendige Software für den Betrieb der Container. Hierbei werden Sie auch nach Ihrer Praxisgröße gefragt und darauf basieren die Systemvorausetzungen überprüft.

charly-server install prepare

Installation der Container (charly-VM)

Starten Sie die geführte Installation mittels.

charly-server install

Sie werden zunächst durch die Konfiguration geleitet. Bei Fragen konsultieren Sie bitte die vollständige Installationsanleitung. Am Ende jedes Konfigationsabschnittes werden Sie gefragt, ob die Konfiguration korrekt ist oder ob Sie diese ändern möchten. Erst nach Bestätigung wird die Konfiguration unter /root/.config/charly-server gespeichert.

Nach der Konfiguration werden Sie nach dem Passwort gefragt, damit mittels sudo die virtuelle Maschine gestartet werden kann.
Während des Installationsprozesses werden Sie darum gebeten den Festplattenvollzugriff zu gewähren. Folgen Sie der Anleitung.
Zum Abschluss der Installation werden Sie gefragt, ob Sie Passwörter und Login löschen möchten. Wir empfehlen, wenn Sie sicher sind, dass nur berechtigte Personen auf den Server Zugang haben, diese Datei auf dem Server zu belassen, um die Wartung einfacher zu gestalten.

Kontrollieren Sie den Erfolg der Installation mittels

charly-server manage status

Führen Sie als nächstes die Schritte zur Installation des charly-Clients auf dem Server und Ihren Clients durch.

Prüfen Sie im Anschluss Ihre Funktionen für einen reibungslosen Praxisablauf in charly im Container (charly-VM).

Reaktivieren des Altsystems

Wenn es bei der Installation der Container (charly-VM) zu unerwarteten Problemen kommt, kann die alte Installation wieder reaktiviert werden.

Zuerst suchen Sie im Logfile nach "PostgreSQL bin" und "PostgreSQL data" und notieren sich diese Pfade.

Setzen Sie die beiden Pfade im folgenden Befehl unter <bin pfad> und <data pfad> ein und führen Sie den Befehl aus, um die Datenbank wieder zu starten:

sudo -u SOLUTIOSQL <bin pfad>/pg_ctl start -D <data pfad>

Im Anschluss muss die alte Datenbank wieder aktiviert werden:

Je nachdem welche Pfade hier verwendet wurden:

sudo mv /Library/LaunchDaemons/postgresql-13.plist_off /Library/LaunchDaemons/postgresql-13.plist
sudo launchctl load -w /Library/LaunchDaemons/postgresql-13.plist

Die ncjs-Services müssen wieder aktiviert und gestartet werden. Navigieren Sie im Terminal in das entsprechende Verzeichnis und führen Sie die folgenden Befehle aus:

cd /Applications/Solutio/Server/ncjs
./acd.sh registerall
./acd.sh startall

Zuletzt muss der SMB-Share für das charly-Verzeichnis /Applications/Solutio/Client/Charly wieder angelegt werden. Gehen Sie dafür in die Systemeinstellungen unter "Freigaben" (Sharing) -> "Dateifreigabe" (File Sharing) und legen Sie für das Verzeichnis den SMB-Share wieder an.

Prüfen Sie, ob die alte, wiederhergestellte charly-Client Installation für Ihren Praxisalltag wieder funktioniert.


Version: 1.1.3

Datum: 27.02.2025