Detailiertes Update am Beispiel Ubuntu 22.04-LTS
Systemvorbereitung
Diese Anleitung geht davon aus, dass wir unser System entsprechend der Anleitung Detailierte Installation am Beispiel Ubuntu 22.04-LTS aufgesetzt und DETECT installiert haben.
Systemupdate
Um das System aktuell zu halten, benutzen wir unter Ubuntu den Paketmanager apt. Dazu aktualisieren wir zuerst die Paketquellen.
$ sudo apt update
Es werden jetzt die aktuellen Paketlisten heruntergeladen. Je nachdem wie oft Sie diese aktualisieren, kann dieser Vorgang länger dauern und viele Quelldateien umfassen. Es ist nicht nur aus Sicherheitsgründen wichtig, dieses Update regelmäßig durchzuführen. Ein Update über mehrere Versionen eines Programmes kann durchaus problematisch werden, wenn sich Konfigurationsdateien über die Versionen hinweg so sehr geändert haben, dass der Paketmanager diese nicht mehr migrieren kann. Sparen wir uns also den Stress und halten unser System aktuell.
Nachdem das Update die Quellen heruntergeladen hat, wird dieses in der Regel mit der folgenden Nachricht beendet:
...
Aktualisierung für 2 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
Wir können uns diese Pakete mit dem angezeigten Befehl anzeigen lassen, oder direkt mit dem Update fortfahren:
$ apt upgrade
Je nachdem welche Pakete geupdated wurden, empfiehlt sich ein Neustart des Systems, um die aktualisierte Version zu laden, zum Beispiel nach einem Kernel-Update. Sollten nur einige Tools oder Bibliotheken aktualisiert worden sein, ist dieser nicht notwendig.
Sicherung aktuelle Daten
Es existiert leider kein Script oder Tool, mit welchem alle relevanten Teile der DETECT-Installation gesammelt gesichert werden können. Das bedeutet eine Sicherung muss manuell durchgeführt werden. Es ist aber auch nicht zwingend notwendig eine Sicherung der Daten vorzunehmen.
Im einfachsten Fall sichern wir uns die aktuelle Konfiguration der Stationen und des Mapping direkt über DETECT. Dort finden wir unter dem Punkt Administration
den Abschnitt Backup
.
Finden der DETECT-Daten im Betriebssystem
Da DETECT eine dockerisierte Anwendung ist, verteilen sich die Daten über das Docker-Verzeichnis /opt/docker-deploy/detect und die Docker-Volumes.
Mit dem Befehl:
$ docker volume ls
wird uns wahrscheinlich eine sehr lange Liste an Volumes angezeigt.
In der Datei /opt/docker-deploy/detect/docker-compose.yml finden wir unter dem Punkt 'volumes:' alle definierten Volumes für DETECT.
Für eine Sicherung relevant sind wahrscheinlich die Volumes:
- backend_data
mit den Einstellungen der Applikation
- keycloak_data
mit den Daten für Keycloak für die Benutzerauthentifzierung
Den genauen Ort, wo Docker diese Daten ablegt finden wir mit:
$ docker volume inspect detect-vm_backend_data
[
{
"CreatedAt": "2023-08-10T13:09:30+02:00",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "detect-vm",
"com.docker.compose.version": "2.20.2",
"com.docker.compose.volume": "backend_data"
},
"Mountpoint": "/var/lib/docker/volumes/detect-vm_backend_data/_data",
"Name": "detect-vm_backend_data",
"Options": null,
"Scope": "local"
}
]
Es gilt zu beachten, dass das Service-Präfix mit angegeben werden muss, in diesem Fall detect-vm.
Es folgt eine Auflistung an Informationen über das Volume. Besonders interessant ist im Moment der Mountpoint. Dieser ist der physische Pfad auf der Maschine, an der die Daten liegen. Wichtig zu wissen ist ausserdem, dass Docker diese Daten immer dem Benutzer zuordnet.
$ sudo ls /var/lib/docker/volumes/detect-vm_backend_data/_data
archive audit database.db excluded_case_cache.db excluded_case_cache.db.settings import notified_case_cache.db notified_case_cache.db.settings redis.db redis.db.settings samba
Sicherung der DETECT-Daten im Betriebssystem
Mit den oben benannten Mitteln sind wir in der Lage sein, die relevanten Daten für Ihre DETECT-Installation zu finden.
Wir kopieren uns diese Daten in einen Sicherungsordner bzw. erstellen uns Archive, welche wir sichern können:
$ sudo mkdir /opt/detect-backup
$ cd /opt/detect-backup
$ sudo tar cfv detect-2.0.0.tar /opt/docker-deploy/detect
$ sudo tar cfv detect-backend.tar /var/lib/docker/volumes/detect-vm_backend_data/_data
$ sudo tar cfv detect-keycloak.tar /var/lib/docker/volumes/detect-vm_keycloak_data/_data
Download aktuelle DETECT-Version
Auf der Seite https://gitlab.ukdd.de/pub/detect/-/packages finden wir alle verfügbaren Versionen von DETECT. Es spricht in der Regel nichts dagegen, die aktuelle Version zu installieren.
Wenn wir auf der Homepage auf den Link 'detect-deployment.tar.gz' der Version klicken, die wir installieren möchten, werden wir auf die Seite mit dem Download weitergeleitet.
Dort kopieren wir den Link zur Datei 'detect-deployment.tar.gz' und verwenden diesen in dem Befehl
$ export detectURL=https://gitlab.ukdd.de/pub/detect/-/package_files/13968/download
$ echo $detectURL
Nun legen wir ein Verzeichnis detect_install mit der entsprechenden Versionsnumer an, laden unsere Datei herunter und entpacken diese
$ mkdir detect_install_2.2.0
$ cd detect_install_2.2.0
$ curl -L -o - $detectURL | tar xfvz -
Konfiguration DETECT
Das Verzeichnis sollte nun folgende Struktur haben:
$ ls
playbook.yml readme.md roles sample-extra-variables.yml sample-variables.yml
Um DETECT zu konfigurieren, benötigen wir die Datei variables.yml aus der bisherigen Installation. Dafür kopieren wir diese aus dem bisherigen Installationsverzeichnis:
$ cp ../detect_install_2.0.0/variables.yml variables.yml
Um Konflikte mit der bestehenden Version zu vermeiden, fahren wir diese herunter und verschieben den Installationsordner
$ cd /opt/docker-deploy/detect
$ docker compose down
$ cd ..
$ mv -r detect detect.bak
Ausrollen und Starten von DETECT
Ist die Konfigurationsdatei fertig angepasst, kann DETECT in der aktuellen Version ausgerollt und gestartet werden. Es gibt dazu auch Informationen in der readme.md Datei im Verzeichnis detect_install_v2.2.0.
Der Befehl
$ ansible-playbook playbook.yml -i localhost, --connection=local -e "@variables.yml" -v
erstellt die Konfigurationsdateien, lädt die benötigten Container-Images herunter und kopiert alle notwendigen Daten in das konfigurierte Verzeichnis, im Standardfall nach /opt/docker-deploy/detect.
Wir wechseln in das Verzeichnis und sollten folgende Struktur vorfinden:
$ cd /opt/docker-deploy/detect
$ ls
backend docker-compose.yml frontend keycloak secrets traefik
In den Ordnern liegen Konfigurationsdaten für die einzelnen Container, unter dem Ordner secrets liegen alle konfigurierten Benutzer und Passwörter. Diese können hier für den laufenden Betrieb geändert werden, sollten dann aber dringend in der Datei variables.yml korrigiert werden, um nach einem Update gleich zu bleiben. Andernfalls werden die Passwörter nach einem Update wieder auf den Stand der variables.yml zurückgesetzt.
Zur Prüfung der Installation kann mit den docker Befehlen überprüft werden, ob die Container laufen und in die Logs geschaut werden. Dazu empfehlen wir die Dokumentation von docker zu Rate zu ziehen, speziell zu den Optionen von docker logs
und docker compose logs
.
Testen der Installation
Zum testen der Installation und einrichten einer Beispielstation, eines Mapping und dem Import einer Testdatei folgen wir der Anleitung Einrichten und Testen der Applikation