Indhold

Introduktion

Formål

Dette dokument indeholder en beskrivelse af hvordan Domibus'en kan installeres på et NSP-miljø.

Domibus'en er 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:

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.yamlDocker Compose-fil som det forventes, at driften anvender på både test og produktionsmiljøerne.
docker-compose-domibus-testanvender.yamlDenne 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.envFælles properties som bruges i både "nsp" og "testanvender"-udgaverne af Domibus.
domibus/logback.xmlKonfiguration af Domibus'ens logning
mysql.cnfKonfiguration 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.jksTruststoren til både "Nsp" og "testanvender" domibus. Indeholder certifikat til SMP'en, OCES rod certifikat, og OCES  udstedende certifikat, 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 skal følgende gøres: 

  • 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:

  1. Å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.
  2. Klik ind på "PMode → Current".
  3. 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


  • No labels