Detailierte Installation am Beispiel Ubuntu 22.04-LTS
Systemvorbereitung
Unter https://ubuntu.com/download/server finden Sie die passenden Images, bitte verwenden Sie ein Server-Image.
Installieren Sie die Maschine entsprechend der Anleitung unter Ubuntu und legen Sie einen Standardnutzer detect
an.
Richten Sie in ihrem Netzwerk die Namensauflösung für diesen Rechner ein, in diesem Beispiel detect.klinik.de
Wir verbinden uns nun zu der neuen Maschine und melden uns als Benutzer detect
an.
Falls in Ihrem System einen Proxy genutzt wird, müssen wir diesen entsprechend konfigurieren:
$ sudo nano /etc/environment
http_proxy="http:/proxy.klinik.de:80"
HTTP_PROXY="http:/proxy.klinik.de:80"
https_proxy="http:/proxy.klinik.de:80"
HTTPS_PROXY="http:/proxy.klinik.de:80"
no_proxy="localhost,127.0.0.1,klinik.de"
NO_PROXY="localhost,127.0.0.1,klinik.de"
Bringen wir erst mal das System auf den neuesten Stand:
$ sudo apt update && apt dist-upgrade
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
Nun folgen wir im wesentlichen der Installationseite von docker:
Zuerst deaktivieren und deinstallieren wir eventuell bereits vorinstallierte Software. Falls diese nicht installiert ist, wird sicherlich ein Fehler gemeldet, diesen können wir dann ignorieren.
$ sudo snap remove docker
$ sudo systemctl stop snapd.service
$ sudo systemctl stop dockerd.service
$ sudo systemctl stop containerd.service
$ sudo apt remove snapd docker docker-engine docker.io containerd runc
$ sudo apt autoremove --purge
Anschließend starten wir das System neu und melden uns wieder als Benutzer detect
an:
$ sudo reboot
Installation Docker
Docker stellt seine Pakete für die meisten Distributionen selber sehr aktuell zur Verfügung. Damit wir an diese Pakete kommen, fügen wir das Repository den Paketquellen hinzu:
$ sudo mkdir -m 0755 -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
Sollte ein GPG-Fehler auftreten, wenn wir apt update ausführen, müssen die Rechte korrigiert werden:
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ sudo apt update
Jetzt können wir docker in der aktuellen Version installieren:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Mit der Umstellung auf Compose V2 gab es Änderungen an der automatischen Namensvergabe von Containern. Damit diese wie vor V2 mit einem "_" erstellt werden, schalten wir den Kompatibilitätsmodus ein.
$ sudo nano /etc/environment
COMPOSE_COMPATIBILITY=true
Es empfiehlt sich noch einige Einstellungen für das Docker-Netzwerk zu setzen:
$ sudo nano /etc/docker/daemon.json
{
# Daten an eigene umgebung anpassen
"default-address-pools": [{"base":"172.16.0.0/12","size":24}],
"dns": ["ip-dns1", "ip-dns2"],
"dns-search": ["klinik.de"]
}
Mit diesen Einstellungen setzt man den von Docker verwendeten Netzwerkbereich, falls der Standard beispielsweise mit einem bereits verwendetem kollidiert, sowie die DNS-Settings. Weitere Informationen dazu findet man unter https://docs.docker.com/engine/network/drivers/bridge
Falls im Kliniknetzwerk ein Proxy genutzt wird, kann man diesen in der config.json setzen:
$ nano ~/.docker/config.json
{
"proxies": {
"default": {
"httpProxy": "http:/proxy.klinik.de:80",
"httpsProxy": "https:/proxy.klinik.de:80",
"noProxy": "localhost, 127.0.0.1,klinik.de"
}
}
}
Alternativ kann man diese Einstellungen auch global in systemd in einer Datei unter /etc/systemd/system/docker.service.d/ setzen:
$ nano /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.klinik.de:80/"
Environment="HTTPS_PROXY=https://proxy.klinik.de:80/"
Environment="NO_PROXY=localhost, 127.0.0.1,klinik.de"
Alle für das Thema Proxy relevanten Informationen sind unter https://docs.docker.com/engine/cli/proxy nachlesbar.
Damit wir auch als Benutzer detect
auf docker zugreifen können, muss dieser der Gruppe docker hinzugefügt werden:
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
Sollten hier Fehler auftreten, hilft in der Regel ein Neustart, damit die Benutzerrechte passen.
Jetzt sollten wir auch als detect
docker Container starten können
$ docker -v
$ docker compose version
$ docker run hello-world
Testen der Docker Konfiguration
Es ist über Docker und diverse Container relativ einfach, die Konfiguration von Docker zu testen.
# Ping auf die IP Adresse 9.9.9.9 aus dem Dockernetzwerk heraus
$ docker run -it --rm busybox:latest ping -c 4 9.9.9.9
# Ping und DNS aus dem Dockernetzwerk heraus
$ docker run -it --rm busybox:latest ping -c 4 cr.ukdd.de
# Testen der Email-Konfiguration
$ docker run -it --rm freinet/swaks \
-h detect.klinik.de \
-s mailserver.klinik.de \
-t empfaenger@klinik.de \
-f absender@klinik.de \
--port 587 -tls \
--auth --auth-user smtp_user --auth-password 'smtp_pass'
# Verbindung zum SMB-Share testen
$ docker run --rm -it burstears/smbclient smbclient \
-U samba_user%samba_password \
-W workgroup_klinik \
//SHARE/FOLDER -c 'ls'
Sollten diese Befehle fehlschlagen, prüfen Sie bitte Konfiguration für Docker, insbesondere die Einstellungen für den Proxy, etc. Die E-Mail sollte versandt werden, bitte schauen Sie auch im Spam-Ordner nach.
Ansible installieren
$ sudo apt install ansible
Download DETECT
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 aktuellen Version an, laden unsere Datei herunter und entpacken diese
$ mkdir detect_install_v2.0.0
$ cd detect_install_v2.0.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 eine Datei variables.yml. Dafür kopieren wir die sample-variables.yml und passen diese enstprechend an:
$ cp sample-variables.yml variables.yml
$ nano variables.yml
Für Fragen rund um die Benutzer, und wofür die Einstellungen verwendet werden, können wir auf die Hilfeseiten für Benutzer und Dienste zurückgreifen.
Der Pfad zur Installation sollte vorhanden und für den User 'detect' schreibbar sein. Für den Standardpfad aus der Datei (sample-)variables.yml zum Beispiel:
$ sudo mkdir /opt/docker-deploy
$ sudo chown root:docker /opt/docker-deploy
$ sudo chmod 771 /opt/docker-deploy
Ausrollen und Starten von DETECT
Ist die Konfigurationsdatei fertig angepasst, kann DETECT ausgerollt und gestartet werden. Es gibt dazu auch Informationen in der readme.md Datei im Verzeichnis detect_install.
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