Scripts welche System Dienste wie z.B. Docker, Kubernetes, NFS etc. installieren.
Bestimmte Scripts haben Abhängigkeiten. Z.B. muss vor share.sh
das Script storage.sh
ausgeführt werden.
Dient zum Einrichten vom Persistenten Speicher, welcher nicht in der VM gespeichert wird. I.d. Regel das Verzeichnis /home/ubuntu/data
.
Einbindung in Scripts
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
Voraussetzungen
- Vorhandener NFS Share, z.B. auf dem Rack Server. Siehe Gemeinsame Datenablage.
Installiert und Konfiguriert den VPN Zugriff. Siehe Einbinden der VPN Clients.
Einbindung in Scripts
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/vpn.sh | bash -
Voraussetzungen
storage.sh
Script wurde vorgängig ausgeführt.- WireGuard Konfigurationen und Gateway. Siehe VPN.
Stellt einen SMB Share, i.d. Regel das Verzeichnis /home/ubuntu/data
als Share \\<ip vm>\data
zu Verfügung.
Ermöglicht es Windows User Dateien auf der Linux VM abzulegen oder zu verändern.
Einbindung in Scripts
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/vpn.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/share.sh | bash -
Voraussetzungen
storage.sh
Script wurde vorgängig ausgeführt.
Erzeugt eine "Willkommenswebseite" mit weiteren Anweisungen für die Benutzer der VM.
Ausserdem wird das Verzeichnis /home/ubuntu/data
als http://<ip-vm>/data
zur Verfügung gestellt.
Diese Willkommensseite kann mittels folgenden Dateien angepasst werden:
/home/ubuntu/README.md
- Introseite/home/ubuntu/ACCESSING.md
- Informationen wie auf die VM zugegriffen werden kann. z.B. mittels SSH./home/ubuntu/SERVICES.md
- Evtl. Services inkl. URLs welche in der VM zu Verfügung stehen.
Diese Dateien können z.B. mittels dem Cloud-init
Script erzeugt werden. Siehe z.B. base.yaml.
Einbindung in Scripts
write_files:
- content: |
# Willkommen
path: /home/ubuntu/README.md
permissions: '0644'
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/vpn.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/share.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/intro.sh | bash -
Voraussetzungen
storage.sh
Script wurde vorgängig ausgeführt.
Bindet Repositories, welche für LernMAAS erstellt wurden, ein.
Einbindung in Scripts
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/vpn.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/share.sh | bash -
- sudo su - ubuntu -c "curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/repository.sh | bash -s https://github.com/tbz-it/M122"
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/intro.sh | bash -
Voraussetzungen
- Vorgängig müssen die Services/Script laut config.yaml bzw. deren LernCloud Entsprechungen ausgeführt werden.
Installiert eine K3s Umgebung, ein Lightweight Kubernetes.
K3s stammt von Rancher, welche von SuSE aufgekauft wurde.
Um eine homogene Umgebung zur Verfügung zu stellen, sollte statt K3s - MicroK8s verwendet werden.
Voraussetzungen
- Vorgängig müssen die Services/Script laut config.yaml bzw. deren LernCloud Entsprechungen ausgeführt werden.
Installiert eine Kubernetes Umgebung basierend auf MicroK8s.
Sollte anstelle von k3.sh
verwendet werden.
Einbindung in Scripts
runcmd:
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/storage.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/vpn.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/share.sh | bash -
- curl -sfL https://raw.githubusercontent.com/mc-b/lerncloud/main/services/microk8s.sh | bash -
- microk8s enable ingress
- microk8s kubectl apply -f https://raw.githubusercontent.com/mc-b/duk/master/addons/dashboard-skip-login-no-ingress.yaml
- microk8s kubectl apply -f https://raw.githubusercontent.com/mc-b/lernkube/master/data/DataVolume.yaml
Installiert die MicroK8s Umgebung und zusätzlich (letzte drei Zeilen):
- den Ingress Dienst (Reverse Proxy) nginx.
- das Kubernetes Dashboard. Erreichbar mittels `https://:8443
- richtet PersistentVolumes und Claims ein.
Hinweis: da der Port 80 und 443 vom Ingress Dienst belegt ist, führt die Verwendung von intro.sh
zu Port Konflikten und wurde deshalb weggelassen.
Sind Spezial Scripte für eine Kubernetes Umgebung mit unterliegendem Docker.
Da diese Zusammenstellung von Kubernetes per 31.12.21 als "deprecated" gekennzeichnet wurde, sollte diese nicht mehr verwendet werden.
Die Scripts können ohne Vorwarnung gelöscht werden.