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

WikiJS-installation på OpenShift / OKD 4

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

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

På jagt efter en Kubernetes-baseret Wiki stødte vi på WikiJS, en moderne Wiki, der understøtter markdown-filer og flere lagringsbackend som git og PostgreSQL.
Hjemmesiden 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 for vedligeholdelse af softwaren holdes på et minimum: vi kan lide at fokusere så meget som muligt på effektiv brug og profitere af Kubernetes' evner til dette. Af den grund vælger vi at bruge Crunchy Data Postgres Operator til installation af PostgreSQL som lagringsbackend 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 de filer, som installationen har brug for, pakkes i containeren, så der ikke er behov for internetforbindelse til at hente filerne under initialiseringen. Imaget er offentligt tilgængeligt på Docker Hub og opdateres i øjeblikket manuelt - dette kan ændre sig i fremtiden, vi anbefaler at sætte build op for dig selv for at have den nyeste version, der kræves.

Lad os komme i gang!

WikiJS i Openshift / OKD 4

Sådan installeres WikiJS i Openshift 4 (brug af sideloading-tilstand)

Forudsætninger:

  • kørende Openshift eller OKD cluster med opsætning af vedvarende lagring
    Eksempler gælder for ethvert OKD- eller OpenShift 4-cluster, 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

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

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

Vælg alle namespaces, hvis du vil bruge den i mere end ét; ellers brug den wikijs, som vi oprettede tidligere

3. Installer postgres DB som følger, sørg for at din oc-kommando bruger den rigtige kontekst. Ændr 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:

Du burde kunne forbinde fra den lokale maskine med psql som følger (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å et 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 var nødt til at tilføje CA-certifikatet som beskrevet i dokumentationen:

(DB_SLL_CA - Database CA-certifikatindhold, som en enkelt linjes streng (uden mellemrum eller nye linjer), uden for- og efterskriftlinjer. (valgfrit, kræver 2.3+))

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

./getPsqlRootCAString.sh

Det vil give noget i stil med:

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. Implementeringsfilen indeholder en reference til det docker-billede, som forfatteren af den nævnte reference har lavet. Som nævnt kan dette bygges fra Dockerfile, som er inkluderet.

Af bekvemmelighed kan vi bruge det billede, til at bruge dit eget, bygge billedet og tagge det:
docker build -t ditbrugernavn/repository-navn .

Jeg brugte docker hub :

docker build -t vgerris/wikijs:2 .

derefter skub det til dit foretrukne register og opdater referencen i implementeringsfilen
mere info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Anvend nu implementeringen:

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

Du skal nu have applikationen kørende og eksponeret på ruten, 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 det 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 bonus har WikiJS en diagram-plugin, der gør det virkelig nemt at tilføje draw.io-baserede diagrammer direkte i dokumenterne.

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

 

Binero Group leverer OKD oven på 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 drage fordel af det nyeste inden for højtydende cloud-tjenester?