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.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/ | Keystores til de to instanser af Domibus'en. Når de rigtige test certifikater hentes til "nsp" og "testanvender" bør de to keystores opdateres |
| domibus/gateway_truststore.jks | Truststoren til både "Nsp" og "testanvender" domibus. Indeholder certifikat til SMP'en samt to certifikater til OCES, som alle tre skal vedligeholdes |
| domibus/pmodes/ | Her ligger to eksempler på "pmodes", en til "nsp" (pmode-nsp.xml) og en til "testanvender" (pmode-testanvender.xml). 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.
PMode.xml
Inden upload af PMode filen skal den opdateres, så den matcher konfiguration omkring keystore alias, GLN, og URL. Med udgangspunkt i domibus/compose/configuration/pmode/pmode-nsp.xml:
- Fire steder i filen står "sosi:alias_system". Dette ændres så det matcher alias'et i keystoren
- <identifier partyId="gln" partyIdType="ap-identifier"/> skal opdateres så "gln" er GLN-nummeret som domibus er konfigureret med i SMP'en
- endpoint="http://emr-ap:8080/domibus/services/msh"> opdateres så URL'ens scheme+host+port matcher hvor domibus'en kan nåes
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:8.4" 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