Page History
Indledning
Dette dokument beskriver installation og konfiguration af Sikrede Indlæser.
Installation
Sikrede Indlæser anvender NSP's Continuous Integration og Continuous Deployment miljøer til byg og leverance af komponenten.
Jenkins
Sikrede Indlæser bygges med NSP's Jenkins server via følgende jobs:
- SIKR_build - Bygger koden
- SIKR_push_snapshot - Pusher det nyeste snapshot image til NSP Docker Registry.
NSP Leverandøren er selv ansvarlige for at pushe release versioner af Sikrede Indlæser til NSP Docker Registry gennem Jenkins.
Docker
Sikrede Indlæser består af følgende Docker image som pushes til NSP Docker Registry:
Docker Compose
Sikrede Indlæser leveres samtidig som et sæt af Docker Compose filer i folderen compose.
En leverance af Sikrede Indlæser består af en compose folder som beskrevet ovenfor samt tilhørende tags af det byggede Docker image.
Compose folderen indeholder 5 underfoldere:
| configuration | Her ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø. |
| development | Her ligger en Docker Compose fil til brug for udvikling. Se Guide til Udviklere. |
| test | Her ligger en Docker Compose fil der kan starte Sikrede Indlæser i en standalone test konfiguration. |
| release | Her ligger den Docker Compose fil som det forventes driften anvender på både test og produktionsmiljøerne. |
Krav til miljø
Krav til applikationsservere
Komponenterne er udviklet og testet i Docker ved anvendelse af seneste version af NSP base image (se Dockerfile)
Komponenternes konfiguration er således tilpasset deployering på WildFly 21 applikationsservere med OpenJDK 8.
Krav til operativsystem
Der stilles ingen krav til operativsystemet udover, at det skal være Linux, og Docker skal være installeret.
Krav til adgang til andre services
Sikrede Indlæser anvender:
- MariaDB: Indlæste data ender i en database sammen med statusdata om indlæsningerne
- Kildesystem: Sikrede Indlæser henter sine kildedata via SFTP
Sikrede Indlæser kræver, at der er opsat korrekt adgang til de listede services for at kunne fungere korrekt.
Krav til hardware
Der stilles ikke nogle særlige minimumskrav til hardware, men man skal forvente at bruge high-end hardware (både cpu, ram, netkort og diske) for at kunne opfylde de gældende svartidskrav på NSP.
Oprettelse af databaser og tabeller
Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.
Tilgang til database
Sikrede Indlæser kræver en enkelt database hvor de indlæste data kan persisteres.
Servicen konfigureres med 1 datasource, som tilgår databaserne vha. root brugeren.
Oprettelse af database og tabeller
Datamodellen styres vha. de SQL-scripts, der findes under compose/configuration/database/ddl/.
Scriptene er udformet til at blive kørt med databasemigreringsværktøjet Liquibase.
Scriptene er designet til at kunne blive brugt i både test- og produktions-miljø.
Ved initial installation af servicen vil Liquibase håndtere at køre scriptene i den korrekte rækkefølge (som angivet i liquibase-changelog-master.xml).
Deployment
Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.
Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet.
Konfiguration
Herunder beskrives de properties der findes i Sikrede Indlæsers konfigurationsfiler.
sikr.properties
| sikr.app.name | Kortnavnet på Sikrede Indlæser | SIKR |
| input.folder | Den interne folder, hvor data, der hentes fra kilden placeres til processering af Sikrede Indlæser | /tmp/sikrede/input |
| backup.folder | Angiver placering af backup fil. Dette skal være en folder internt i den Docker container der kører Yderindlæseren. For at have adgang til de backup'ede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren. | /tmp/sikrede/input/.done |
datasource.sikr.jndi.name | Angiver navnet på den datasource der er konfigureret på Wildfly'en. | java:/SIKRDS |
ekstern_camelUrl Denne konfiguration er udelukkende til brug for Sikrede Indlæser og er således ikke en generisk funktionalitet i indlæser reference arkitekturen | Data fra den indlæste fil bliver indlæst i en database. Det er muligt at få indholdet af den indlæste fil leveret til en ekstern SFTP-server, og dette Camel udtryk angiver hvordan filen skal leveres. Hvis ekstern_camelUrl ikke har en værdi, vil der ikke blive foretaget en ekstern levering. | **) |
| input_camelUrl | Angiver det Camel udtryk der henter input-filerne fra SFTP serveren. De filer der hentes lægges i en intern folder i Docker containeren. Den interne folder der hentes til er /tmp/sikrede/input For at have adgang til de hentede filer efter Docker containeren er slukket, skal der laves en volume-mount af en ekstern folder ind til den angivne folder i Docker containeren. | *) |
Denne figur viser hvor de properties der styrer Yderindlæserens opførsel har indflydelse.
- Sikrede Indlæser henter filer ind fra SFTP serveren som angivet i input_camelUrl
- Sikrede Indlæser laver backup af behandlede filer som angivet i backupType og backupFolder
- Hvis der er angivet en ekstern_camelUrl foretages der en eksterne levering af den modtagne fil
- Sikrede Indlæser anvender datasource udpeget af datasource.sikr.jndi.name til at tilgå databasen
- Property batchSize og batchTimeout anvendes i Sikrede Indlæser til at styre validering af den modtagen fil og batch-håndtering mod databasen.
- Den interne læsning af de hentede filer, der er angiver i figuren med intern-camelUrl er ikke konfigurerbar. Den har den faste værdi
file:/tmp/yder/input?readLock=fileLock&antInclude=*.txt&delete=true&sortBy=file:name
som angiver at den indlæser filer med endelsen txt som ligger i folderen /tmp/sikrede/input.
De to Camel udtryk er meget lange så defaultværdierne står her:
De angivne passwords herunder er udelukkende til illustration og de er ikke gyldige passwords
*) sftp:foo@sikredesftp:22/praksys?password=pass&readLock=rename&antInclude=*.txt&delete=true&disconnect=true&stepwise=false&initialDelay=5s&delay=5s&knownHostsFile=/pack/wildfly8/modules/dk/nsi/sdm/yder/known_hosts
**) sftp:bar@sikredesftp:22/ekstern?password=pass&tempFileName=${file:name.noext}.tmp&knownHostsFile=/pack/wildfly8/modules/dk/nsi/sdm/yder/known_hosts
Alle filer skal tilrettes til de forskellige miljøer som Sikrede Indlæser installeres på. Filerne indeholder en konfiguration der passer til Sikrede Indlæser i en standalone test konfiguration.