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

WikiJS installasjon på OpenShift / OKD 4

Installer WikiJS i OpenShift / OKD 4 med Crunchy PostgreSQL

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

På leting etter en Kubernetes-basert Wiki, kom vi over WikiJS, en moderne Wiki som støtter markdown-filer og flere lagringsbackend som git og PostgreSQL.
Nettstedet gir informasjon om installasjon på Kubernetes, men OpenShift har noen ekstra sikkerhetsfunksjoner som må vurderes ved installasjon av programvare på dette.

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

Først ønsker vi å bruke produkter som har en stor installasjonsbase og et høyt nivå av automatisering, slik at innsatsen for å vedlikeholde programvaren holdes til et minimum: vi vil fokusere mest mulig på effektiv bruk og dra nytte av de mulighetene Kubernetes gir for dette. Av den grunn velger vi å bruke Crunchy Data Postgres Operator for å installere PostgreSQL som lagringsbackend for WikiJS, siden det er den best støttede.

Deretter viser vi hvordan man bygger et docker-image som kan legges til i et internt register etter behov og brukes for såkalt sideloading-modus, som betyr at filene installasjonen trenger er pakket i containeren, så det trengs ingen internettforbindelse for å hente filene ved initialiseringen. Imaget er offentlig tilgjengelig på Docker Hub og oppdateres for tiden manuelt – dette kan endres i fremtiden, vi anbefaler at du setter opp byggingen selv for å ha den nyeste versjonen som trengs.

Nå kjører vi!

WikiJS i Openshift / OKD 4

Hvordan man installerer WikiJS i Openshift 4 (bruker sideloading-modus)

Forutsetninger:

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

Eller gå til https://console-openshift-console.apps-crc.testing/k8s/cluster/projects og klikk på Skapa Projekt 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 namespace hvis du vil at den skal kunne brukes i mer enn ett, ellers bruk wikijs-navnet som vi opprettet tidligere

3. Installer postgres DB som følger, og sørg for at oc-kommandoen din bruker riktig kontekst. Endre verdiene ved behov - akkurat nå er det 20GB.
oc apply -f postgres.yaml
4. Nå bør du ha en PostgresCluster CR under fanen installerte operatører:

Du bør 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 bør få et shell som viser at tilkoblingen bruker TLS, som er standard med denne operatoren.

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

(DB_SLL_CA - Databaseens CA-sertifikatinnhold, som en enkel streng uten mellomrom eller nye linjer, uten prefiks- og suffiksrader. (valgfritt, krever 2.3+))

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

./getPsqlRootCAString.sh

Det kommer att gi noe lignende:

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 i 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 å implementere det.

6. Deploymentsfilen inneholder en referanse til dockerimagen som forfatteren av nevnte referanse har laget. Som nevnt kan denne bygges fra Dockerfilen som inngår.

For bekvemmelighet kan vi bruke den imagen, for å bruke din egen, bygg imagen og tagg den:
docker build -t dittanvändarnamn/repositorienamn .

Jeg brukte docker hub :

docker build -t vgerris/wikijs:2 .

deretter push den til ditt valg av register og oppdater referansen i deploymentsfilen
mer info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Nå bruker du distribusjonen:

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

Du bør nå ha applikasjonen i gang og eksponert på ruten, du kan nå fullføre innstillingen.

Nyt WikiJS!

Valgfritt
Hvis du har en eksisterende samling av Markdown-filer (MD), kan det være nyttig å legge dem til i wiken. Mer informasjon om hvordan man setter opp dette når det lagres i git finnes her.
Filene vil bli indeksert og lagt til i WikiJS og kan redigeres direkte med Markdown-redigereren. Som en bonus har WikiJS et 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 inn de krav som finnes.
Deaktiver gjestebrukeren om du ikke vil at det skal være offentlig, se:
https://docs.requarks.io/groups (Privat Wiki)

 

Binero Group leverer OKD ovenpå Binero cloud og også en fullt støttet Red Hat OpenShift Container Platform som en hostet eller fullt managerad løsning, på svenske datacenter, GDPR-kompatibel.

Test Binero cloud og kontakt oss om du har spørsmål, vi hjelper gjerne til!

Opprett konto i Binero cloud

Del denne artikkelen

Relaterte artikler

Vil du vite mer?

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