Betrieb der charly VM
Diese Anleitung beschreibt den Betrieb der charly VM unter macOS.
Der Betrieb der charly VM erfolgt nach der Installation.
Umstellung von charly-vm.sh auf zentrales charly-server
Das alte Skript charly-vm.sh
, welches in früheren VM Installation verwendet wurde, wird durch das neue charly-server
Skript ersetzt.
Wenn Sie noch das alte Skript vewenden, laden Sie das Installation-Skript mit folgendem Befehl herunter:
curl -o charly-server-install.zsh https://charly-cdn-solutio.s3.amazonaws.com/release/macos/charly-server-install.zsh
WICHTIG
Das charly-server-install.zsh
muss neben dem alten charly-vm.sh
Skript liegen,
damit das charly-server-install.zsh
Skript die charly-vm.conf
Konfigurationsdatei finden kann.
Also vor dem Download in das entprechende Verzeichnis wechseln oder nach dem Download die Skript-Datei verschieben.
Machen Sie das Skript ausführbar:
chmod +x charly-server-install.zsh
./charly-server-install.zsh
Jetzt steht charly-server zur Verfügung und kann in einem beliebigen Verzeichnis ausgeführt werden:
charly-server manage status
System Check
Neben dem allgemeinen Status kann auch ein datailierter Bericht der laufenden VM erzeugt werden. Er enthält verschiedene Parameter, wie Speicherverbrauch und Festplattenplatz. Der Bericht ist unterteilt in Daten zur VM und zum macOS Host.
Er kann jederzeit mit folgendem Befehl erstellt werden:
charly-server manage system-check
Der System Check kann auch in JSON-Form erstellt werden:
charly-server manage system-check json
Die Status-Daten sind:
VM
- CPU Auslastung
- Speicher Auslastung
- Dateisystem Auslastung
- Docker Container Status inklusive Anzeige der Container die nicht sauber laufen
- Konnektor Verbindungsprüfung, sofern vorhanden
- Kim Verbindungsprüfung, sofern vorhanden
- Backup SMB-Verbindungsprüfung, sofern vorhanden
macOS
- Infos zur macOS Version
- CPU Auslastung
- Speicher Auslastung
- Größe und Dateisystem Auslastung der VM Images
- SMB-Verbindungsprüfung des charly-ablage SMB Shared
Backup und Restore der Datenbank
Das Backup der VM wird in ein SMB Share abgelegt. Dieses muss im Netzwerk verfügbar sein.
Es werden nur die neuesten acht Backups der Datebank gespeichert. Ältere Backups werden automatisch gelöscht. Die Daten der Ablage werden in ein charly.7z komprimiert, welches stetig aktualisiert wird.
Zusätzlich wird optional eine ISO Datei mit den aktuellsten Backup Daten erzeugt. Mit dieser ISO Datei kann jederzeit die VM neu installiert werden. Ohne diese ISO Datei ist ein Wiederherstellen über den Restore Mechanismus möglich.
Backup konfigurieren
Geben Sie einen Ordner auf einem Laufwerk mit ausreichend Speicherplatz frei und testen Sie dafür unter macOS, ob sich dass SMB Share verbinden lässt. Dieser Ordner kann auch ein NAS sein.
Führen Sie dann folgendes Kommando aus:
charly-server manage backup-config
Sie werden nach den Daten für das SMB Share gefragt. Sie werden auch gefragt, ob bei einem Backup auch ein ISO erzeugt werden soll. Zum Schluss geben Sie noch an, wann das tägliche Backup statt finden soll.
Nach Eingabe der Information wird geprüft, ob die VM das SMB Share verbinden kann und ob der angegebenen Beutzer darauf Schreibrechte besitzt. Ansonsten bricht das Kommando mit einer Fehlermeldung ab.
backup-config
kann jederzeit wieder ausgeführt werden, um die Konfiguration zu ändern. Die bisherigen Daten erscheinen dann in der Eingabe (außer das Passwort).
WICHTIG
Wenn bei einer Installation noch das charly-backup.qcow2
konfiguriert wurde, kann mit backup-config
auf das neue Backup System umgestellt werden. Dann wird backup-config
zusätzliche Hinweise anzeigen und die VM während der Einrichtung des Backups einmal neu starten. Zum Schluss können Sie das charly-backup.qcow2
löschen
Manuelles Backup erstellen
Ein manuelles Backup kann nach der Konfiguration jederzeit erstellt werden, indem in einem Terminal folgendes ausgeführt wird:
charly-server manage backup
Um beim Backup auch zusätzlich eine ISO Datei zu erzeugen, steht alternativ auch Folgendes bereit:
charly-server manage backup-iso
Das sind auch genau die Kommandos, die vom täglichen Backup verwendet werden, je nachdem, ob ein ISO erzeugt werden soll oder nicht.
Backup wiederherstellen
WICHTIG
- Alle charly-Clients sollten beendet werden, bevor das Backup wiederhergestellt wird.
- Alle Änderungen in der Datenbank und in der Ablage die seit dem Backup erzeugt wurden, gehen durch die Wiederherstehlung verloren.
Basierend auf den vorhandenen Backups im SMB Share kann ein Backup wiederhergestellt werden.
Das neueste Backup kann wiederhergestellt werden, indem in einem Terminal folgendes ausgeführt wird:
charly-server manage restore
Das Kommando die Ablage und das Datenbank-Backup einspielen und danach die Docker-Container wieder starten.
Es kann auch ein spezifisches Backup wiederhergestellt werden.
Führen Sie zuerst folgendes Kommando aus, um eine Liste mit Zeitstempeln der verfügbaren Backups zu erhalten:
charly-server manage backup-list
Benutzen einen Zeitstempel für das restore
Kommando, zB.:
charly-server manage restore 2023-10-12-10-22
Es kann auch auschließlich die Datenbank wiederhergestellt werden
charly-server manage restore-database
charly-server manage restore-database 2023-10-12-10-22
Update des Servers
Wenn eine neue Version der charly-Services verfügbar ist, kann diese manuell installiert werden.
WICHTIG
Alle charly-Clients sollten beendet werden, bevor das Update durchgeführt wird.
Führen Sie dazu folgendes Kommando aus:
charly-server.zsh manage update
Während des Updates wird ein Backup der Datenbank und der Solutio Ablage und der internen Server-Konfiguration erstellt. Das Update kann einige Zeit in Anspruch nehmen
Rollback eines Updates
WICHTIG
- Alle charly-Clients sollten beendet werden, bevor das Rollback durchgeführt wird.
- Alle Änderungen in der Datenbank und in der Ablage die seit dem letzem Update erzeugt wurden, gehen durch das Rollback verloren.
Sollte das Update nicht korrekt funktionieren, kann es zurück gerollt werden, indem in einem Terminal folgendes ausgeführt wird:
charly-server.zsh manage update-rollback
Funktionen des charly-vm Skripts
Wenn das Skript direkt ohne Parameter ausgeführt wird, erscheint eine Liste möglicher Parameter.
Usage: charly-server manage [<Befehl>] [Optionen]
Befehle:
update - Startet das Update der VM
status - Information zur VM, IP etc.
start - Startet die VM
stop - Stoppt die VM
docker-restart - Restart der Docker Container in the VM (docker stop/start)
docker-rebuild - Baut die Docker Container in the VM erneut auf (docker down/up)
backup-list - Zeigt die Zeitstempel der verfuegbaren Backups an.
backup - Erzeugt ein backup
restore - Stellt das neueste Backup wieder her.
restore <timestamp> - Stellt ein spezifisches Backup wieder her.
Nutze './charly-server.zsh manage backup-list' fuer eine Liste mit Zeitstempeln der verfuegbaren Backups.
update-rollback - Rollback des letzten Updates
ssh - SSH Zugang in die VM.
ssh -C <command> - Fuehrt das <command> in der VM aus.
uninstall - Deinstalliert die VM und optional die zugehörige Software
logs [-f] <servicename> - Zeigt die Docker Container Logs an. Optional kann ein Servicename angegeben werden. Mit -f werden die Logs kontinuierlich angezeigt.
Folgende Parameter stehen beim charly-server.zsh
Skript zur Verfügung:
Parameter | Beschreibung |
---|---|
install | Fragt die Konfiguration ab und installiert eine neue VM. Dieses Kommando wird typischerweise nur einmal ausgeführt. Es kann aber, ohne Datenverlust, bei Problemen mit der VM jederzeit wieder ausgeführt werden. Siehe Installation der charly-VM |
manage update | Aktualisiert eine bestehende VM. Siehe Update der Service |
manage update-rollback | Rollt das letzte Update zurück. Siehe Update der Service |
manage status | Gibt Auskunft über den Zustand der VM; unter Anderem die IP-Adresse und den Zustand der Docker Container |
manage start | Startet die VM, sofern sie noch nicht gestartet ist |
manage stop | Stoppt die VM, sofern sie gestartet ist |
manage docker-restart | Führt einen Neustart der Docker Container durch. Dies kann hilfreich sein, sollten nicht alle Docker-Container korrekt funktionieren |
manage backup-list | Zeigt eine Liste aller verfügbaren Backups an. Siehe Backup und Restore der Datenbank |
manage backup | Führt ein manuelles Backup durch. Siehe Backup und Restore der Datenbank |
manage restore | Stellt das neueste Backup wieder her. Siehe Backup und Restore der Datenbank |
manage restore <timestamp> | Stellt ein bestimmtes Backup wieder her. Siehe Backup und Restore der Datenbank |
manage ssh | Login in die VM. Es sollte der Prompt charly@charlyvm:~$ erscheinen. Dies ist typischerweise nur für die technische Administration der VM notwendig |
manage ssh -C <command> | Anstatt sich via ssh auf die VM einzuloggen, kann auch ein Befehl direkt in der VM ausgeführt werden. Z.B. ./charly-server.zsh manage ss -C "ls -la /" zeigt den Inhalt des Verzeichnisses / der VM detailiert an. |
SSH-Zugriff und Sicherheit
Für das korrekte Funktionieren des charly-vm Skriptes nach einer Installation ist ein SSH Schlüssel notwendig welcher nur für den Benutzeraccount zugänglich ist, unter dem die Installation durchgeführt wurde. Der SSH-Schlüssel wird im .ssh-Verzeichnis im VM Basisverzeichnis des jeweiligen Benutzerkontos gespeichert.
- Bewahren Sie den SSH-Schlüssel sicher auf.
- Bei einem Wechsel des Administrators muss der neue Administrator Zugriff auf den SSH-Schlüssel erhalten.
- Sollte der SSH-Schlüssel verloren gehen, ist ein Eingriff des solutio-Supports mittels Online Termin erforderlich, um den Zugriff wiederherzustellen.
- Um Ausfallzeiten zu vermeiden, planen Sie den Administratorwechsel sorgfältig und stellen Sie sicher, dass der SSH-Schlüssel ordnungsgemäß übergeben wird.
Admin Web-Interface
Die charly-VM bietet ein Web-Interface mit verschiedenen Funktionen an. Geben Sie dafür einfach die IP-Adresse der charly-VM in einen Browser ein.
Die IP-Adresse kann ermitteln werden, indem in einem Terminal folgendes ausgeführt wird:
charly-server.zsh manage status
Das Admin Web-Interface bietet folgende Funktionalitäten:
Name | Beschreibung |
---|---|
Status | Zeigt den Status der Services und weitere Systeminformationen an |
Logfiles | Zeigt den Status der Docker Container und deren Logfiles an |
PGAdmin | PGAdmin ist ein Admin Web-Interface der PostgreSQL Datenbank |
Downloads | Es werden verschiedene Dateien zum Download angeboten. Hauptsächlich handelt es sich um Skripte zum Installieren des charly-Clients |
Im Bereich Logfiles und PGAdmin muss eine Anmeldung erfolgen. Verwenden Sie die Administrator eMail und das Administrator Passwort, die Sie bei der Installation angegeben haben.
charly-config
Um eine Lizenz für eine Online Terminvergabe (OTV) zu hinterlegen oder Java-Services speziell zu konfigurieren, können spezifische Dateien in einem charly-config Samba-Share angelegt werden.
Verbinden des Samba-Share "charly-config"
- Öffnen Sie den Finder.
- Gehen Sie im Menü auf "Gehe zu" und wählen Sie "Mit Server verbinden..." oder drücken Sie
Command + K
. - Gebn Sie die SMB-Adresse ein, die von
./charly-server.zsh manage status
angegeben wird. - Klicken Sie auf "Verbinden".
- Wählen Sie "Als Registrierter Nutzer anmelden", Verwenden Sie "smbadminuser" als Name und das Administrator Passwort, dass Sie bei der Installation angegeben haben.
- Klicken Sie auf "Verbinden".
OTV
Im Samba-Share "charly-config" gibt es einen Ordner "otv-license". Hier kann die Lizenz-Datei abgelegt werden.
Dr. Flex
Bei der Installation des Online-Terminvergabesystems (OTV, Dr. Flex) führen Sie folgende zusätzliche Schritte durch:
Kopieren Sie die Lizenz für die Online-Terminvergabe in das 'charly-config' Netzlaufwerk in den Ordner "otv-license".
Bearbeiten Sie auf dem admin smb share die Datei charly-config/docker-compose.overwrite.yml:
services:
dr-flex:
image: drflex/charly-tunnel:latest
environment:
- QUERY_SERVICE_ADDRESS=http://gateway:
- CONFIGURE_AUTH_TOKEN_WITH=????????????????????????????? (Hinweis: Der Token ist kundenspezifisch!)
Danach führen Sie ein Update mittels sudo ./charly-server.zsh manage update
aus, auch wenn charly bereits aktuell ist. Achten sie darauf, dass wärend dieses Vorgangs an charly nicht gearbeitet werden kann.
Diese Schritte sollten die Dr. Flex OTV-Installation abschließen und den Tunnel-Dienst in Ihrer Umgebung aktivieren.
conf2
Im Samba-Share "charly-config" gibt es einen Ordner "conf2". Hier können in Unterordnern, die nach den Kurznamen der Services benannt sind (auth, ehealth, etc.) jeweils eine Datei "application.yml" abgelegt werden, in der spezielle Java Konfigurationen konfiguriert werden.
Oder es kann im schon vorhandenen Unterordner "_global" solche eine Datei "application.yml" abgelegt werden, in der spezielle Java Konfigurationen konfiguriert werden. Diese Konfiguration gilt dann übergreifend für all Java Services und überschreibt auch andere Konfigurationen in "conf2".
docker.conf
Falls Sie individuelle Arbeitsspeicher-Limits nutzen, können Sie diese im folgenden Format in die Datei docker.conf im Samba-Share "charly-config" eintragen:
Der Standard ist wie folgt, tragen Sie nur ein, was davon abweicht:
QUERY_MEMORY_LIMIT=2048M
EHKP_MEMORY_LIMIT=4096M
GHOSTSCRIPT_MEMORY_LIMIT=1024M
DIFFER_MEMORY_LIMIT=1024M
IDEA_MEMORY_LIMIT=1024M
PDF_MEMORY_LIMIT=1024M
EHEALTH_MEMORY_LIMIT=4096M
EHEALTH_GATEWAY_MEMORY_LIMIT=3072M
DISCOVERY_MEMORY_LIMIT=1024M
GATEWAY_MEMORY_LIMIT=2048M
MESSAGING_MEMORY_LIMIT=1024M
ORCHESTRATION_MEMORY_LIMIT=1024M
FILES_MEMORY_LIMIT=256M
Beachten Sie, dass Sie ggf. höhere Limits benötigen, wenn Ihre Praxis zusätzliche Mitarbeiter beschäftigt.
Troubleshooting
Keine Verbindung per SSH in die VM möglich
Wenn unter per SSH nicht mehr in die VM eingeloggt werden kann, sind zu viele Schlüssel im SSH-Agent hinterlegt, die nicht für diese VM verwendet werden.
Received disconnect from 192.168.2.198 port 22:2: Too many authentication failures
Disconnected from 192.168.2.198 port 22
Lösung hierfür:
Befehl | Beschreibung |
---|---|
ssh-add -l | Zeigt alle Schlüssel an |
ssh-add -D | Löscht alle hinterlegten Schlüssel |
ssh-add -d \<key> | Löscht einen einzelnen Schlüssel aus der Liste |
Die Container VM hat durch einen Neustart eine neue IP Adresse bekommen
Eigentlich sollte die Container VM vom DHCP Server immer die gleiche IP Adresse bekommen. Falls das nicht so ist, kann die Container VM durch einen Neustart eine andere IP zugewiesen bekommen. Dann funktionieren die charly Clients nicht mehr, weil sie versuchen, sich mit der alten IP Adresse zu verbinden.
-
Führen Sie folgendes Kommando aus:
charly-server.zsh manage reapply-ip
-
Löschen Sie auf den Arbeitsplätzen die charly.app und laden Sie den Client von der Admin Website wieder herunter. Die URL zur Admin-Website finden Sie via:
charly-server.zsh manage status
Version: 1.1.3
Datum: 2025-02-06