Die Manager-Nodes werden sowohl die E-Learning-Applikation als auch JupyterHub implementieren. Das bedeutet, dass diese Manager-Nodes den Benutzer einem freien Worker-Node zuweisen, wenn er intensive Rechenressourcen für die Programmierung benötigt. Außerdem werden die für die Programmierung erforderlichen Dateien von den Manager-Nodes auf die Worker-Nodes übertragen. In diesem Abschnitt werden wir die Manager-Nodes so konfigurieren, dass sie zunächst als Manager fungieren, um alle anderen Worker-Nodes zu verwalten. Zweitens sorgen sie für die Verteilung der Dateien über das Netzwerkdateisystem.
Zuerst müssen Sie eine SSH-Verbindung zu diesem Manager herstellen. Dazu verwenden Sie den folgenden Befehl.
ssh -i [privater Schlüssel] ubuntu@[hostname der Manager-Node]
Beispiel für SSH
ssh -i databrix-key ubuntu@1985609f-7839-4819-8840-2d38548e4ea5.ma.bw-cloud-instance.org
Dann installieren Sie Docker Engine. (Quelle: Docker Engine installieren)
sudo -i
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Installieren Sie dann Docker Compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Installieren Sie Apache2 mit den folgenden Befehlen. (Bitte den Befehl Schritt für Schritt ausführen.)
apt update
apt install ca-certificates openssl
apt install apache2
apt-get install apache2-utils
apt clean
apt install libapache2-mod-shib ntp
cd /etc
wget --no-check-certificate https://shibboleth.net/downloads/embedded-discovery-service/latest/shibboleth-embedded-ds-1.3.0.tar.gz && \
tar -xzf shibboleth-embedded-ds-1.3.0.tar.gz && \
cd shibboleth-embedded-ds-1.3.0 && \
make install
a2enmod proxy proxy_http ssl headers rewrite shib
systemctl restart apache2
systemctl restart shibd
Installieren Sie Network File System mit den folgenden Befehlen. (Bitte den Befehl Schritt für Schritt ausführen.)
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
Erstellen Sie einen Docker Swarm Cluster auf dem Manager Node. Verwenden Sie Ihren aktuellen Manager Node, um den Swarm Cluster zu initiieren, indem Sie den folgenden Befehl ausführen. Stellen Sie sicher, dass Sie den Join Token notieren, der in der Ausgabe angezeigt wird, sobald der Befehl abgeschlossen ist.
docker swarm init
Notieren Sie sich den Join Token, der in der Ausgabe angezeigt wird, sobald der Befehl abgeschlossen ist. Ein Beispiel für einen Join Token ist:
docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 172.17.0.2:2377
Um die Daten sicherer zu machen, sollten wir über https auf sie zugreifen. Um https verwenden zu können, müssen wir das SSL-Zertifikat für die VM erstellen. Außerdem braucht Shibboleth SP auch ein Zertifikat, um mit Shibboleth IdP zu kommunizieren. Hier verwenden wir certbot und Letsencrypt, um das Zertifikat automatisch zu generieren.
mkdir /opt/WebApp
cd /opt/WebApp
mkdir /opt/WebApp/exchange_data
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone
sudo certbot renew --dry-run
openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048
shib-keygen -u _shibd -g _shibd -h $(hostname -f) -y 30 -e https://$(hostname -f)/shibboleth -n sp-signing -f
shib-keygen -u _shibd -g _shibd -h $(hostname -f) -y 30 -e https://$(hostname -f)/shibboleth -n sp-encrypt -f