Moodle-plattform med Docker, Git og Ansible

Effektiv læringsplattform drevet av moderne teknologi for enkel installasjon, vedlikehold og administrasjon.

Forberedelser

I denne delen dekker vi alle nødvendige forberedelser før du setter opp Moodle-plattformen. Dette inkluderer valg av maskinvare, installasjon av Ubuntu, nettverks- og SSH-oppsett, samt bruk av MobaXterm for å koble til serveren og konfigurere den videre.

1.1 Valg av maskinvare

Velg maskinvare som kan håndtere antall studenter og lærere som skal bruke Moodle. For mindre testoppsett kan du klare deg med 2 CPU-kjerner, 4 GB RAM, og minst 20 GB lagring. For større oppsett kan du trenge mer avhengig av antall samtidige brukere.

1.2 Installere Ubuntu Server

Last ned og installer Ubuntu Server (vi anbefaler versjon 22.04 eller nyere). Under installasjonen må du konfigurere serveren med riktig nettverkstilgang, brukernavn og passord.

1.3 Nettverksoppsett og SSH

Under installasjonen vil du bli bedt om å konfigurere nettverket. Hvis du bruker en virtuell maskin, anbefales det å bruke en bridged-adapter slik at serveren får en IP-adresse på det samme nettverket som vertsmaskinen.

1.4 Bruk av MobaXterm for SSH-tilkobling

Når serveren er konfigurert, kan du bruke MobaXterm for å koble til serveren via SSH. Dette lar deg administrere serveren eksternt og gjennomføre de nødvendige konfigurasjonene.

1.5 Oppdatere serveren

Etter at du har koblet deg til serveren, må du oppdatere systemet for å sikre at alle pakkene er oppdaterte:

sudo apt update && sudo apt upgrade -y

1.6 Installere Git

Git vil bli brukt til å klone Moodle-koden. Installer Git med følgende kommando:

sudo apt install git -y

Konfigurer Git med ditt navn og e-postadresse:

git config --global user.name "Ditt Navn"
git config --global user.email "din.email@eksempel.com"

1.7 Installere Docker og Docker Compose

For å kjøre Moodle ved hjelp av containere, må du installere Docker og Docker Compose. Følg disse trinnene:

1. Installer Docker

Legg til Dockers offisielle GPG-nøkkel:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Legg til Docker-depotet til APT-kildene:

sudo add-apt-repository \
  "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

Oppdater pakkelisten:

sudo apt update

Installer Docker Engine:

sudo apt install docker-ce docker-ce-cli containerd.io -y

Legg til brukeren din i Docker-gruppen for å kunne kjøre Docker-kommandoer uten sudo:

sudo usermod -aG docker $USER

Merk: Du må logge ut og inn igjen for at gruppeendringene skal tre i kraft.

Kontroller at Docker er riktig installert ved å kjøre:

docker --version

2. Installer Docker Compose

Installer Docker Compose ved å laste ned den nyeste versjonen:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Kontroller at Docker Compose er installert riktig ved å kjøre:

docker-compose --version

1.8 Installere Ansible

For å bruke Ansible til automatisering, anbefales det å installere Ansible via apt for å unngå problemer med Python-pakker:

sudo apt update
sudo apt install ansible -y

Kontroller at Ansible er installert ved å kjøre:

ansible --version

1.9 Konfigurer SSH-tilgang mellom serverne

For å automatisere sikkerhetskopiering og vedlikehold med Ansible, må primær- og backup-serverne kunne kommunisere via SSH uten passord. Kjør følgende kommandoer, erstatt ditt_brukernavn med ditt brukernavn og backup-server-ip med IP-adressen til backup-serveren:

ssh-keygen -t rsa -b 4096
ssh-copy-id ditt_brukernavn@backup-server-ip
ssh ditt_brukernavn@backup-server-ip

1.10 Test at alt fungerer

Før du går videre til implementeringen, må du teste at Docker, Docker Compose og Ansible fungerer som de skal, og at SSH-tilgangen mellom serverne er riktig konfigurert.

Test Docker

Kjør en enkel test med Docker:

docker run hello-world

Test Docker Compose

Opprett en enkel docker-compose.yml-fil for testing:

version: '3'
services:
  hello-world:
    image: hello-world

Kjør:

docker-compose up

Test Ansible

Kjør en enkel kommando mot både primær- og backup-serveren:

ansible all -m ping -i "primær-server-ip,backup-server-ip,"

1.11 Opprett prosjektkatalogen

Opprett en katalog for Moodle-prosjektet og naviger til den:

mkdir -p ~/moodle-docker
cd ~/moodle-docker

1.12 Opprett en .env-fil for miljøvariabler

Opprett en .env-fil for å lagre miljøvariabler som brukes av Docker Compose:

nano .env

Legg til følgende innhold (erstatt med dine egne sterke passord):

MOODLE_DATABASE_PASSWORD=sterkt_passord
MOODLE_DATABASE_ROOT_PASSWORD=sterkt_root_passord

Lagre og lukk filen (Ctrl+O, Enter, Ctrl+X).

1.13 Klon Moodle-repositoriet (valgfritt)

Hvis du ønsker å bruke Moodle-kildekoden direkte fra GitHub, klon repositoriet:

git clone https://github.com/moodle/moodle.git

Merk: Dette trinnet er valgfritt hvis du bruker ferdige Docker-bilder som allerede inkluderer Moodle.

1.14 Oppsummering

Nå har du klargjort Ubuntu-serveren din for installasjon av Moodle ved hjelp av Docker. Du har installert og konfigurert Git, Docker, Docker Compose og Ansible, samt opprettet nødvendige kataloger og miljøvariabler. Du er nå klar til å gå videre til implementeringen, der du vil sette opp Moodle ved hjelp av Docker Compose.