1. Hem
  2. /
  3. Nyheter
  4. /
  5. Installera WikiJS i OpenShift

WikiJS installation på OpenShift / OKD 4

Installera WikiJS i OpenShift / OKD 4 med Crunchy PostgreSQL

På Binero Group arbetar vi varje dag med att förbättra mjukvaruleverans. Företaget har Open Source i sina ådror och vi försöker därför ge tillbaka till våra klienter och kunder det vi utvecklar så mycket som möjligt.

I sökandet efter en Kubernetes-baserad Wiki, stötte vi på WikiJS, en modern Wiki som har stöd för markdown-filer och flera lagringsbackends som git och PostgreSQL.
Webbplatsen ger information om installation på Kubernetes, men OpenShift har några extra säkerhetsfunktioner som måste beaktas vid installation av mjukvara på det.

Om du föredrar att gå direkt till koden och en kort förklaring, kan du hitta Git-repot här med en hänvisning till författaren som startade projektet, men läs gärna lite vidare om du vill veta mer om bakgrunden till uppsättningen.

För det första vill vi använda produkter som har en stor installationsbas och en hög nivå av automation, så att ansträngningarna för att underhålla mjukvaran hålls till ett minimum: vi vill fokusera så mycket som möjligt på effektiv användning och dra nytta av de möjligheter Kubernetes har för detta. Av den anledningen väljer vi att använda Crunchy Data Postgres Operator för att installera PostgreSQL som lagringsbackend för WikiJS, eftersom det är den bäst stödda.

Därefter visar vi hur man bygger en docker-image som kan läggas till i ett internt register vid behov och användas för så kallad sideloading-läge, vilket innebär att de filer som installationen behöver är paketerade i containern, så ingen internetanslutning behövs för att dra filerna vid initialiseringen. Imagen är offentligt tillgänglig på Docker Hub och uppdateras för närvarande manuellt – detta kan ändras i framtiden, vi rekommenderar att du sätter upp bygget själv för att ha den senaste versionen som krävs.

Nu kör vi!

WikiJS i Openshift / OKD 4

Hur man installerar WikiJS i Openshift 4 (använder sideloading-läge)

Förutsättningar:

  • körande Openshift- eller OKD-kluster med konfigurerad persistent lagring
    Exemplen gäller för alla OKD- eller OpenShift 4-kluster, skärmdumpar är tagna från OKD som körs på CRC (nu OpenShift local) som beskrivs här
1. Skapa ett projekt:
oc new-project wikijs

Eller gå till https://console-openshift-console.apps-crc.testing/k8s/cluster/projects och klicka på Skapa Projekt och namnge det wikijs

2. Installera Crunchy Postgres för Kubernetes-operatorn från OperatorHub eller följ instruktionerna här:

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

Välj alla namespace om du vill att den ska kunna användas i mer än ett, annars använd wikijs-namnet som vi skapade tidigare

3. Installera postgres DB enligt följande och se till att ditt oc-kommando använder rätt kontext. Ändra värdena vid behov - just nu är det 20GB.
oc apply -f postgres.yaml
4. Nu bör du ha en PostgresCluster CR under fliken installerade operatörer:

Du bör kunna ansluta från den lokala maskinen med psql så här (se till att psql är installerat):

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å ett shell som visar att anslutningen använder TLS, vilket är standard med denna operator.

5. För mig fungerade det inte att ha WikiJS ansluten till PostgreSQL med SSL, jag behövde lägga till CA-certifikatet som beskrivs i dokumentationen:

(DB_SLL_CA - Databasens CA-certifikat innehåll, som en enkel radsträng (utan mellanslag eller nya rader), utan prefix- och suffixrader. (valfritt, kräver 2.3+))

Detta lagras i pgo-root-cacert-hemligheten, kör skriptet för att få det i rätt format:

./getPsqlRootCAString.sh

Det kommer att ge något liknande:

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

Lägg till detta 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=

Nu är vi redo att implementera det.

6. Deploymentsfilen innehåller en referens till dockerimagen som författaren till nämnda referens skapade. Som nämnts kan denna byggas från Dockerfilen som ingår.

För bekvämlighet kan vi använda den imagen, för att använda din egen, bygg imagen och tagga den:
docker build -t dittanvändarnamn/repositorienamn .

Jag använde docker hub :

docker build -t vgerris/wikijs:2 .

sedan pusha den till ditt valda register och uppdatera referensen i deploymentsfilen
mer info : https://docs.docker.com/engine/reference/commandline/push/

docker push vgerris/wikijs:2

Nu tillämpar du distributionen:

oc apply -f deploymentConfig.yaml
7. Nu när appen är distribuerad kan vi lägga till en tjänst och en route för att exponera den. Uppdatera route-filen med din server-URL:
oc apply -f service.yaml
oc apply -f route.yaml

Du bör nu ha applikationen igång och exponerad på routen, du kan nu slutföra inställningen.

Njut av WikiJS!

Valfritt
Om du har en befintlig samling av Markdown-filer (MD) kan det vara användbart att lägga till dem i wikin. Mer information om hur man ställer in detta när det lagras i git finns här.
Filerna kommer att indexeras och läggas till i WikiJS och kan redigeras direkt med Markdown-redigeraren. Som en bonus har WikiJS ett diagram-plugin som gör det riktigt enkelt att lägga till draw.io-baserade diagram direkt i dokumenten.

Det är också ganska enkelt att ställa in OpenID connect med till exempel Keycloak.
Under administration, gå till autentisering, lägg till strategi och välj Keycloak.
Skapa en klient i Keycloak och fyll i de krav som finns.
Inaktivera gästanvändaren om du inte vill att det ska vara offentligt, se:
https://docs.requarks.io/groups (Privat Wiki)

 

Binero Group levererar OKD ovanpå Binero cloud och även en fullt stödjande Red Hat OpenShift Container Platform som en hostad eller fullt managerad lösning, på svenska datacenter, GDPR-kompatibel.

Testa Binero cloud och kontakta oss om du har några frågor, vi hjälper gärna till!

Skapa konto i Binero cloud

Dela den här artikeln

Relaterade artiklar

Vill du veta mer?

Vi drivs av att hjälpa våra kunder att uppnå större innovation och kostnadseffektiv IT. Skulle du också vilja dra nytta av det senaste inom högpresterande molntjänster?