1. Hjem
  2. /
  3. Nyheter
  4. /
  5. Installere WikiJS i OpenShift

WikiJS installasjon på OpenShift / OKD 4

Installere WikiJS i OpenShift / OKD 4 ved hjelp av Crunchy PostgreSQL

Hos Binero Group jobber vi hver dag med å forbedre programvareleveranser. Selskapet har Open Source i blodet, og som sådan prøver vi å gi tilbake til våre klienter og kunder det vi utvikler så mye som mulig.

I jakten på en Kubernetes-basert Wiki kom vi over WikiJS, en moderne Wiki som støtter markdown-filer og flere lagringsbakender som git og PostgreSQL.
Nettsiden gir informasjon om installasjon på Kubernetes, men OpenShift har noen ekstra sikkerhetsfunksjoner som må tas i betraktning ved installasjon av programvare på det.

Hvis du foretrekker å gå direkte til koden og en kort forklaring, kan du finne Git-repoen her med en henvisning til forfatteren som startet prosjektet, men les gjerne litt videre hvis du vil vite mer om bakgrunnen for oppsettet.

Først og fremst ønsker vi å bruke produkter som har en stor installasjonsbase og et høyt nivå av automatisering, slik at innsatsen for å vedlikeholde programvaren holdes på et minimum: vi liker å fokusere så mye som mulig på effektiv bruk og dra nytte av kapabilitetene Kubernetes har til dette. Av den grunn velger vi å bruke Crunchy Data Postgres Operator for å installere PostgreSQL som lagringsbakend for WikiJS, da dette er den best støttede.

Deretter viser vi hvordan man bygger et docker-bilde som kan legges til et internt arkiv etter behov og brukes til en såkalt sideloading-modus, som betyr at filene som installasjonen trenger er pakket inn i containeren, så ingen internett-tilkobling er nødvendig for å hente filene under initialiseringen. Bildet er offentlig tilgjengelig på Docker Hub og blir for øyeblikket oppdatert manuelt – dette kan endre seg i fremtiden, vi anbefaler å sette opp byggingen selv for å ha den siste nødvendige versjonen.

La oss komme i gang!

WikiJS i Openshift / OKD 4

Hvordan installere WikiJS i Openshift 4 (bruker sideloading-modus)

Forutsetninger:

  • kjørende Openshift- eller OKD-klynge med konfigurert persistent lagring
    Eksempler gjelder for enhver OKD- eller OpenShift 4-klynge, skjermbilder er tatt fra OKD som kjører på CRC (nå OpenShift local) som beskrevet her
1. Opprett et prosjekt:
oc new-project wikijs

Alternativt, gå til https://console-openshift-console.apps-crc.testing/k8s/cluster/projects og klikk på Create Project og navngi det wikijs

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

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

Velg alle namespaces hvis du vil at den skal kunne brukes i mer enn ett, hvis ikke bruk wikijs-namespace som vi opprettet tidligere

3. Installer postgres-databasen som følger, og sørg for at din oc-kommando bruker riktig kontekst. Endre verdiene om nødvendig - for øyeblikket er det 20GB.
oc apply -f postgres.yaml
4. Nå skal du ha en PostgresCluster CR under fanen for installerte operatører:

Du skal kunne koble til fra den lokale maskinen med psql slik (sørg for at psql er installert):

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 skal få en skall som viser at forbindelsen bruker TLS, noe som er standard med denne operatøren.

5. For meg fungerte det ikke å la WikiJS koble til PostgreSQL med SSL, jeg måtte legge til CA-sertifikatet som beskrevet i dokumentasjonen:

(DB_SSL_CA - Database CA-sertifikatinnhold, som en enkelt linje streng (uten mellomrom eller nye linjer), uten for- og etterskriftlinjer. (valgfritt, krever 2.3+))

Dette lagres i pgo-root-cacert secret, kjør skriptet for å få det i riktig format:

./getPsqlRootCAString.sh

Det vil gi noe som:

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

Legg dette til deploymentConfig.yaml, utdrag:

- 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=

Nå er vi klare til å distribuere det.

6. Deploymentsfilen inneholder en referanse til docker-imaget forfatteren av den nevnte referansen laget. Som nevnt, kan dette bygges fra Dockerfile som er inkludert.

For enkelhets skyld kan vi bruke det imaget, for å bruke ditt eget, bygg imaget og merk det:
docker build -t dittbrukernavn/repository-navn .

Jeg brukte docker hub :

docker build -t vgerris/wikijs:2 .

så push det til det registeret du ønsker og oppdater referansen i deploymentsfilen
mer info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Bruk nå utplasseringen:

oc apply -f deploymentConfig.yaml
7. Nå som appen er distribuert, kan vi legge til en tjeneste og en rute for å eksponere den. Oppdater rute-filen med din server-URL:
oc apply -f service.yaml
oc apply -f route.yaml

Du bør ha applikasjonen kjørende og eksponert på ruten nå, du kan fullføre oppsettet.

Nyt WikiJS!

Valgfritt
Hvis du har en eksisterende samling av Markdown-filer (MD), kan det være nyttig å legge disse til i wiki. Mer informasjon om hvordan du setter det opp når det er lagret i git kan finnes her.
Filene vil bli indeksert og lagt til i WikiJS og kan redigeres direkte med Markdown-editoren. Som en bonus har WikiJS en diagram-plugin som gjør det veldig enkelt å legge til draw.io-baserte diagrammer direkte i dokumentene.

Det er også ganske enkelt å sette opp OpenID Connect med for eksempel Keycloak.
Under administrasjon, gå til autentisering, legg til strategi og velg Keycloak.
Opprett en klient i Keycloak og fyll ut de nødvendige feltene.
Deaktiver gjestebruker hvis du ikke vil at det skal være offentlig, se:
https://docs.requarks.io/groups (Privat Wiki)

 

Binero Group leverer OKD på toppen av Binero cloud og også en fullt støttet Red Hat OpenShift Container Platform som en hostet eller fullstendig administrert løsning, på svenske datasentre, GDPR-kompatibel.

Prøv Binero cloud og kontakt oss hvis du har spørsmål, vi hjelper gjerne!

Opprett konto i Binero cloud

Del denne artikkelen

Relaterte artikler

Vil du vite mer?

Vi drives av å hjelpe kundene våre med å oppnå større innovasjon og kostnadseffektiv IT. Ønsker du også å dra nytte av det siste innen høyytelses skytjenester?