Indhold
Introduktion
Formål
Dette dokument indeholder en beskrivelse af hvordan Domibus'en kan installeres på et NSP-miljø.
Domibus'en er sammen med "MSH Adapter" en del af EHMI MeddelelsesRegistrering (EMR).
Læsevejledning
Læseren forventes at have kendskab til Sundhedsdatastyrelsens platform NSP, samt generelt kendskab til Docker, Docker Compose, MySQL og lidt om EHMI.
Installation
Jenkins
Domibus bygges ind i et NSP-specifikt image via NSP Jenkins-serveren. Der bygges med følgende job:
- https://jenkins.nspop.dk/job/EMR/ (burde måske omdøbes?)
Docker
Domibus består af et Docker image som pushes til NSP Docker Registry:
Leverance
Domibus'en leveres som et sæt Docker Compose-filer i folderen "compose/release". Herudover findes der tilhørende konfiguration i "compose/configuration".
En leverance af Domibus'en består af compose-filerne, konfigurationen samt tilhørende tags af det byggede Docker image.
Der findes pt. følgende compose-filer under "compose/release":
| docker-compose-domibus-nsp.yaml | Docker Compose-fil som det forventes, at driften anvender på både test og produktionsmiljøerne. |
| docker-compose-domibus-testanvender.yaml | Denne er kun til testmiljøerne, så vi har mulighed for selv at teste det at være anvender. Konfigurationen er lægger sig tæt op af den første compose-fil. |
Domibus'en er en umodificerede udgave af den officielle Domibus, men pakket ned i et NSP-specifikt docker image med tilhørende konfiguration. Domibus'en leveres med dens egen MySQL- og ActiveMQ-services, som er tilføjet compose-filerne under release. Der er også en "domibus-db-migration-nsp" som opretter databasen første gang servicen starter op via Flyway og de officielle Domibus sql-scripts.
Konfiguration
I folderen "compose/configuration" findes følgende relevante konfigurationsfiler, som indlæses når docker compose startes op:
| domibus/domibus-common.env | Fælles properties som bruges i både "nsp" og "testanvender"-udgaverne af Domibus. |
| domibus/logback.xml | Konfiguration af Domibus'ens logning |
| mysql.cnf | Konfiguration af de MySQL-services som Domibus'en bruger |
| domibus/keystores/ | Her ligger de to keystores/truststores de to instanser af Domibus'en indtil videre brugere. Det forventes at disse vil udgå som projektet skrider frem. |
| domibus/pmodes/ | Her ligger to eksempler på "pmodes", en til "nsp" og en til "testanvender". Disse skal manuelt uploades til den pågældende Domibus-installation første gang den startes op. Dette skal ske via browser UI. |
Selve konfigurationen gennemgås mere detaljeret i Driftsvejledningen.
Afvikling
Domibus startes og stoppes med Docker Compose-kommandoer.
På et NSP miljø hentes "compose" folderen for den ønskede version og kommandoen "docker-compose -f <compose-file> up" køres i folderen "release", for hver docker-compose fil.
Man skal sikre sig at "domibus-db-migration" er kørt færdig og at databasen er klar. Det burde være sikret igennem "depends_on" i compose-filen.
Der skal også uploades en gyldig "pmode" konfiguration igennem webinterfacet til de pågældende Domibus-instanser. Dette kan kun gøres igennem en browseren, med mindre man tidligere har været inde og oprette en "Plugin User" (hvilket også kun kan gøres via browseren). Hvis man har en plugin user, burde det være muligt at gøre mange af de samme ting via et REST-api også.
Proceduren for at uploade pmode:
- Åben browseren på http://<host>:<port>/domibus/login, for hver host, hvor host og port erstattes af den konkrete host og port hvor der kører en Domibus.
- Klik ind på "PMode → Current".
- Tryk upload og vælg en passende pmode fra filsystemet. TODO: Uafklaret hvilken pmode-config NSP skal køre med.
Database
Databasen er en standard "mysql:lts" uden ændringer og med minimal opsætning.
Hvis man vil tage en backup, kan det gøres ved at køre mysqldump inde i docker, fx sådan her:
docker compose exec -T domibus-db-nsp \ sh -c 'exec mysqldump --no-tablespaces -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' \ > nsp-$(date +%F_%H%M).sql