Linux-Prüfungslabor mit SSH, examctl, Abgabe-Export und Echtzeit-Scheduling.
794
Docker-basierte Prüfungsumgebung für Betriebssysteme und Rechnerarchitektur.
Erstellen Sie zunächst die lokalen Ordner für Abgaben, Exportdateien und Verlaufsdaten:
mkdir -p exam/{abgabe,export,persist}
Starten Sie anschließend den Container:
docker run -d \
--pull=always \
--name exam-lab \
-p 127.0.0.1:2222:22 \
--cap-add=SYS_NICE \
--ulimit rtprio=99 \
-v "$PWD/exam:/exam" \
danbu/exam-lab:latest
Container stoppen:
docker stop exam-lab
Container aus demselben Ordner erneut starten, in dem sich ./exam/ befindet:
docker start exam-lab
Ein bereits vorhandener Container behält seine verwendete Image-Version. docker start lädt kein neueres Image herunter.
Melden Sie sich per SSH an:
ssh student@localhost -p 2222
Startpasswort des Benutzers student:
wbh-lab
Initialisieren Sie danach die Prüfung und kontrollieren Sie die Angaben:
examctl init
examctl -i
examctl list
Die geforderten Abgabedateien werden unter folgendem Pfad bearbeitet:
/home/student/abgabe/
Mit diesem Befehl kann der aktuelle Bearbeitungsstand der Aufgaben geprüft werden:
examctl prüfen
Vor der Abgabe sollte zusätzlich die formale Validierung ausgeführt werden:
examctl validate-submission
Eine erfolgreiche Validierung wird geschützt im Container dokumentiert und kann bei der Bewertung nachgewiesen werden.
Für die entsprechende praktische Aufgabe stehen die Benutzer daniel und manfred zur Verfügung. Das Passwort beider Benutzer lautet:
GeHeim
Ein Benutzerwechsel ist beispielsweise so möglich:
su - manfred
Das Programm /usr/local/bin/report darf vom Benutzer student gezielt als manfred ausgeführt werden:
sudo -u manfred /usr/local/bin/report
Bei erfolgreicher Ausführung lautet die Ausgabe:
irgendwas
Validieren und paketieren Sie Ihre Lösungen:
examctl validate-submission
examctl package-submission
examctl package-submission nennt anschließend den vollständigen Namen der erzeugten .tar.gz-Abgabedatei.
Verlassen Sie danach die Container-Shell:
exit
Die Abgabedatei finden Sie anschließend auf Ihrem Rechner im relativen Ordner:
./exam/export/
Bitte reichen Sie Ihre Lösungen über den Online-Campus ein, indem Sie die erzeugte Datei
submission-<student_id>-<exam_code>-<run_id>.tar.gz
dort als Abgabedatei hochladen.
Bei einer abweichenden Docker-Konfiguration zeigt folgender Befehl einen passenden SCP-Befehl an:
examctl export-help
examctl --hilfe
studentexamctlSCHED_FIFO und SCHED_RR über SYS_NICE, rtprio und CAP_SYS_NICEDie Echtzeit-Unterstützung dient Lehr- und Versuchszwecken. Der Container ist kein hartes Echtzeitsystem. Das tatsächliche Scheduling hängt vom Linux-Kernel der Docker-Ausführungsumgebung ab.
Content type
Image
Digest
sha256:d0b31402b…
Size
40 MB
Last updated
21 days ago
docker pull danbu/exam-lab