1. Hjem
  2. /
  3. Nyheder
  4. /
  5. Installation af WikiJS i OpenShift

WikiJS installation på OpenShift / OKD 4

Installerer WikiJS i OpenShift / OKD 4 ved hjælp af Crunchy PostgreSQL

Hos Binero Group arbejder vi hver dag på at forbedre softwarelevering. Virksomheden har Open Source i blodet, og som sådan prøver vi at give vores kunder og brugere det, vi udvikler, så meget som muligt tilbage.

I søgen efter et Kubernetes-baseret Wiki stødte vi på WikiJS, et moderne Wiki, der understøtter markdown-filer og flere lagrings-backends som git og PostgreSQL.
Websiden giver information om installation på Kubernetes, men OpenShift har nogle ekstra sikkerhedsfunktioner, der skal tages i betragtning ved installation af software på det.

Hvis du foretrækker at gå direkte til koden og en kort forklaring, kan du finde Git-repoen her med en henvisning til forfatteren, der startede projektet, men læs gerne lidt videre, hvis du vil vide mere om baggrunden for opsætningen.

Først og fremmest kan vi godt lide at bruge produkter, der har en stor install base og et højt niveau af automatisering, så indsatsen til vedligeholdelse af softwaren holdes på et minimum: vi kan lide at fokusere så meget som muligt på effektiv brug og profitere af de muligheder, Kubernetes har til dette. Af den grund vælger vi at bruge Crunchy Data Postgres Operator til at installere PostgreSQL som en storage backend for WikiJS, da det er den bedst understøttede.

Derefter viser vi, hvordan man bygger et docker image, der kan tilføjes til et internt repository efter behov og bruges til en såkaldt sideloading-tilstand, hvilket betyder, at filerne, som installationen har brug for, pakkes i containeren, så der ikke er behov for internetforbindelse til at hente filerne ved initialiseringen. Imaget er offentligt tilgængeligt på Docker Hub og opdateres p.t. manuelt - dette kan ændre sig i fremtiden, vi anbefaler at opsætte buildet selv for at have den seneste version, der kræves.

Lad os komme i gang!

WikiJS i Openshift / OKD 4

Hvordan man installerer WikiJS i Openshift 4 (ved brug af sideloading-tilstand)

Forudsætninger:

  • Kørende Openshift- eller OKD-klynge med opsætning af vedvarende lagring
    Eksempler gælder for enhver OKD- eller OpenShift 4-klynge, skærmbilleder er taget fra OKD, der kører på CRC (nu OpenShift local) som beskrevet her
1. Opret et projekt:
oc new-project wikijs

Alternativt gå til https://console-openshift-console.apps-crc.testing/k8s/cluster/projects og klik på Opret Projekt, og navngiv det wikijs:

How to create a project in wiki.js in OpenShift

2. Installer Crunchy Postgres for Kubernetes-operatoren fra OperatorHub eller følg instruktionerne her:

https://access.crunchydata.com/documentation/postgres-operator/v5/quickstart/

Vælg alle namespaces, hvis du vil have den til at kunne bruges i mere end et, ellers brug wikijs den, som vi oprettede før

Installing the Crunchy Postgres for Kubernete operator wiki.js in OpenShift

3. Installer postgres DB som følger, og sørg for at din oc-kommando bruger den rette kontekst. Skift værdierne om nødvendigt - i øjeblikket er det 20GB.
oc apply -f postgres.yaml
4. Nu skulle du have en PostgresCluster CR under fanen under installerede operatører:

PostgresCluster CR wiki.js in OpenShift

Du bør kunne oprette forbindelse fra den lokale maskine med psql sådan her (sørg for at psql er installeret):

PG_CLUSTER_PRIMARY_POD=$(oc get pod -n wikijs -o name -l postgres-operator.crunchydata.com/cluster=wikijs,postgres-operator.crunchydata.com/role=master)

kubectl -n wikijs port-forward "${PG_CLUSTER_PRIMARY_POD}" 5432:5432 &

PG_CLUSTER_USER_SECRET_NAME=wikijs-pguser-wikijs
PGPASSWORD=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.password | base64decode}}') PGUSER=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.user | base64decode}}') PGDATABASE=$(kubectl get secrets -n wikijs "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.dbname | base64decode}}') psql -h localhost

Du skulle få en shell, der viser, at forbindelsen bruger TLS, hvilket er standard med denne operator.

5. For mig virkede det ikke at få WikiJS til at oprette forbindelse til PostgreSQL med SSL, jeg skulle tilføje CA-certifikatet som beskrevet i dokumentationen:

(DB_SLL_CA - Database CA-certifikatindhold som en enkelt linjes streng (uden mellemrum eller linjeskift), uden præfiks- og suffiks-linjer. (valgfrit, kræver 2.3+))

Dette er gemt i pgo-root-cacert secret, kør scriptet for at få det i det rigtige format:

./getPsqlRootCAString.sh

Det vil give noget som:

MIIBgTCCASegAwIBAgIQFlUx8CFOhxtbNv8baQQh7jA
KBggqhkjOPQQDAzAfMR0wGwYDVQQDExRwb3N0Z3
Jlcy1vcGVyYXRvci1jYTAeFw0yMjExMjUxMjM1NDNaFw
0zMjExMjIxMzM1NDNaMB8xHTAbBgNVBAMTFHBvc3
RncmVzLW9wACBhdG9yLWNhMFkwEwNHKoZIzj0CA
QYIKoZIzj0DAQcDQgAElokygIJH/U06gVTTQRZB0B1
cdSV8bP/HWVJ7BYOhcuOUymQsPnKDg27DgQSa9z
VVLADHf24vuMg8Uo/NDfjaf6NFMEMwDgYDVR0PAQ
H/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFN/HmCEkp7HKceaU/QACugp4tu/
LMAoGCCqGSM49BAMDA0gAMEUCIQC/qZJx55pqz
B0QmSRL6UmhnSeUl85rf2+X3eods2miKgIgM3swV3
UuTMgdDm8scsW1aDwhkPpCkwOXbaM0mX2jDvM=

Tilføj dette til deploymentConfig.yaml, uddrag:

- name: DB_SSL_CA
value:
MIIBgTCCASegAwIBAgIQFlUx8CFOhxtbNv8baQQh7jA
KBggqhkjOPQQDAzAfMR0wGwYDVQQDExRwb3N0Z3
Jlcy1vcGVyYXRvci1jYTAeFw0yMjExMjUxMjM1NDNaFw
0zMjExMjIxMzM1NDNaMB8xHTAbBgNVBAMTFHBvc3
RncmVzLW9wACBhdG9yLWNhMFkwEwNHKoZIzj0CA
QYIKoZIzj0DAQcDQgAElokygIJH/U06gVTTQRZB0B1
cdSV8bP/HWVJ7BYOhcuOUymQsPnKDg27DgQSa9z
VVLADHf24vuMg8Uo/NDfjaf6NFMEMwDgYDVR0PAQ
H/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
HQYDVR0OBBYEFN/HmCEkp7HKceaU/QACugp4tu/
LMAoGCCqGSM49BAMDA0gAMEUCIQC/qZJx55pqz
B0QmSRL6UmhnSeUl85rf2+X3eods2miKgIgM3swV3
UuTMgdDm8scsW1aDwhkPpCkwOXbaM0mX2jDvM=

Nu er vi klar til at implementere det.

6. Deploymentsfilen indeholder en reference til det docker image, som forfatteren af den nævnte reference har lavet. Som nævnt kan dette bygges fra Dockerfilen, som er inkluderet.

For nemheds skyld kan vi bruge det image, eller for at bruge dit eget, bygge imaget og tagge det:
docker build -t yourusername/repository-name .

Jeg brugte docker hub :

docker build -t vgerris/wikijs:2 .

så tryk det til din valgte registry og opdater referencen i deploymentsfilen
mere info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Anvend nu deployment:

oc apply -f deploymentConfig.yaml
7. Nu hvor appen er implementeret, kan vi tilføje en tjeneste og en route for at eksponere den. Opdater route-filen med din server-URL:
oc apply -f service.yaml
oc apply -f route.yaml

Du burde have applikationen kørende og eksponeret på ruten nu, du kan færdiggøre opsætningen.

Nyd WikiJS!

Valgfrit
Hvis du har en eksisterende samling af Markdown-filer (MD), kan det være nyttigt at tilføje dem til wiki'en. Mere information om, hvordan man opsætter det, når de er gemt i git, kan findes her.
Filerne vil blive indekseret og tilføjet til WikiJS og kan redigeres direkte med Markdown-editoren. Som en ekstra fordel har WikiJS en diagramplugin, der gør det rigtig nemt at tilføje draw.io-baserede diagrammer direkte i dokumenterne.

Det er også ganske nemt at opsætte OpenID connect med for eksempel Keycloak.
Under administration, gå til authentication, tilføj strategi og vælg Keycloak.
Opret en klient i Keycloak og udfyld de nødvendige felter.
Deaktiver gæstebrugeren, hvis du ikke ønsker, at det skal være offentligt, se:
https://docs.requarks.io/groups ( Privat Wiki)

Binero Group leverer OKD ovenpå Binero cloud og også en fuldt understøttet Red Hat OpenShift Container Platform som en hostet eller fuldt administreret løsning, på svenske datacentre, GDPR-kompatibel.

Prøv Binero cloud og kontakt os, hvis du har spørgsmål, vi hjælper gerne!

Opret konto i Binero cloud

Del denne artikel

Relaterede artikler

Vil du vide mere?

Vi drives af at hjælpe vores kunder med at opnå større innovation og omkostningseffektiv IT. Vil du også gerne udnytte det seneste inden for højtydende cloud-tjenester?