bibliotheks-und-archivinfor.../virtualbox-appliance.md

244 lines
8.1 KiB
Markdown

# VirtualBox Appliance herstellen (Notiz für Lehrende)
Als eine von zwei Optionen wird die Verwendung der Software VirtualBox empfohlen. Den Studierenden wird eine vorkonfigurierte Arbeitsumgebung mit JupyterLab in Form einer Appliance (.ova) bereitgestellt.
Hier wird dokumentiert, wie diese Appliance hergestellt wird.
Die Installation soll funktional gleich zu den für binder verwendeten Dockerfiles sein:
* base-notebook: [Dockerfile für tag 1386e20468](https://github.com/jupyter/docker-stacks/blob/1386e20468332f32a028c6224bbd8439eb406ee4/base-notebook/Dockerfile)
* minimal-notebook: [Dockerfile für tag 1386e20468](https://github.com/jupyter/docker-stacks/blob/1386e20468332f32a028c6224bbd8439eb406ee4/minimal-notebook/Dockerfile)
* eigene Erweiterungen: [Dockerfile](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/blob/master/binder/Dockerfile)
## Installation
1. Neue Virtuelle Maschine erstellen
- Name: lubuntu-bain
- Type: Linux / Ubuntu (64-bit)
- Memory: 2048 MB
- Hard Disk: VDI, dynamically allocated, 20 GB
2. VM settings
- General > Advanced > Shared Clipboard: Bidirectional
- General > Advanced > Shared Clipboard: user: bain, pass: bain2019
- System > Processor: 2 CPUs, Enable PAE/NX
3. Installation Lubuntu 18.04
1. Download der ISO-Datei: http://cdimage.ubuntu.com/lubuntu/releases/18.04.2/release/lubuntu-18.04.3-desktop-amd64.iso
2. VM starten und heruntergeladene ISO-Datei auswählen
3. Standardinstallation mit folgenden Parametern:
- Language: Deutsch
- Minimale installation
- Ort: Berlin
- Name: bain
- Passwort: bain2019
- Automatisch anmelden aktivieren
4. Installation Gasterweiterungen
1. Abhängigkeiten installieren
```
sudo apt update && \
sudo apt install build-essential dkms linux-headers-$(uname -r)
```
2. VirtualBox Fenstermenü > Devices > Insert Guest Addtions CD image... abbrechen und eingeben:
```
sudo /media/$USER/VBox*/VBoxLinuxAdditions.run
```
3. Nutzer der Gruppe vboxsf hinzufügen (für shared folder)
```
sudo adduser $USER vboxsf
```
4. CD auswerfen im Dateimanager und neustarten
5. Sudo ohne Passwort erlauben
```
sudo echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee --append /etc/sudoers
```
6. Updates installieren und neustarten
```
sudo apt update && \
sudo apt upgrade && \
sudo shutdown -r now
```
7. Installation JupyterLab via pip mit jupyter-server-proxy und bash_kernel
```
sudo apt install python3-pip python3-dev && \
sudo -H pip3 install --upgrade pip && \
sudo -H pip3 install jupyter && \
sudo -H pip3 install jupyterlab && \
sudo -H pip3 install jupyter-server-proxy && \
sudo -H pip3 install bash_kernel && \
sudo -H python3 -m bash_kernel.install
```
8. Jupyter einmal manuell starten für den Cookie im Browser
```
jupyter notebook
```
9. JupyterLab als Systemd Service einrichten
```
echo "[Unit]
Description=JupyterLab
[Service]
User=$USER
ExecStart=/usr/local/bin/jupyter-lab
ExecStop=/usr/local/bin/jupyter-notebook stop
WorkingDirectory=/
Restart=always
[Install]
WantedBy=default.target" | sudo tee /etc/systemd/system/jupyter.service
sudo systemctl enable jupyter.service
sudo systemctl start jupyter.service
```
10. GitHub Repo clonen
```
sudo apt install git && \
git clone https://github.com/felixlohmeier/bibliotheks-und-archivinformatik.git
```
11. Desktop-Links
1. Jupyter Notebook
```
echo "[Desktop Entry]
Encoding=UTF-8
Name=JupyterLab
Type=Link
URL=http://localhost:8888/lab/tree/home/$USER/bibliotheks-und-archivinformatik
Icon=text-html" >> ~/Desktop/jupyter-notebook
```
2. Gemeinsames Dokument
```
echo "[Desktop Entry]
Encoding=UTF-8
Name=Gemeinsames Dokument
Type=Link
URL=https://pad.gwdg.de/7X8eCDVoQB2Ng6DZlG40LQ?both
Icon=text-html" >> ~/Desktop/gemeinsames-dokument
```
3. Ordner
```
ln -s ~/bibliotheks-und-archivinformatik ~/Desktop/bibliotheks-und-archivinformatik
```
12. Konfiguration Startleiste
- Leafpad starten und mit rechter Maustaste zum Starter hinzufügen
- LX-Terminal starten und mit rechter Maus zum Starter hinzufügen
13. Konfiguration Browser
- Startseite auf http://localhost:8888/lab/tree/home/bain/bibliotheks-und-archivinformatik setzen
14. Virtuelle Maschine als Appliance exportieren über Dialog im Menü `Machine` > `Export to OCI`
## Optional: Bootfähige USB-Sticks erstellen (als Alternative zu VirtualBox bei Hardware-Problemen)
Wir nutzen das Tool [mkusb](https://help.ubuntu.com/community/mkusb), um USB-Sticks zu erstellen, die mit BIOS und UEFI (inkl. Secure Boot) bootbar sind.
Es werden USB-Sticks mit USB 3.0, schneller Schreibgeschwindigkeit und mindestens 16 GB Speicherplatz benötigt. Im Kurs wurde verwendet: [Sandisk Ultra Fit 32GB](https://www.idealo.de/preisvergleich/OffersOfProduct/4524027_-ultra-fit-32gb-sandisk.html).
1. Als erstes wird ein bootbarer Ubuntu USB stick benötigt. Folgen Sie der offiziellen Anleitung
- Windows: https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows
- macOS: https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-macos
- Linux: https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu
2. Booten Sie vom USB-Stick und installieren Sie mkusb
```
sudo add-apt-repository universe # only for standard Ubuntu
sudo add-apt-repository ppa:mkusb/ppa # and press Enter
sudo apt-get update
sudo apt-get install mkusb mkusb-nox usb-pack-efi
```
3. Zweiten USB-Stick einstecken und mkusb starten
- Option `Install` / `Persistent Live` wählen
- Einstellung `msdos` auswählen
4. Herunterfahren, ersten USB-Stick entfernen und vom verbliebenen (zweiten) USB-Stick im Modus Run Lubuntu - persistent live" booten
1. Tastatur einstellen
- System Tools > Fcitx starten.
- Unten rechts erscheint ein Tastatur-Icon. Dort `configure` aufrufen.
- Bei Available Input Method `German` > `Keyboard - German` auswählen und Button Pfeil nach rechts anklicken. Dann `Keyboard - English (US)` rechts anklicken und Button Pfeil nach links anklicken.
2. Spracheinstellungen
- Preferences > Language Support starten.
- Tab `Language`
- Deutsch (Deutschland) vor English schieben
- System der Tastatureingabemethode: `fcitx`
- Button `Apply System-Wide` drücken
- Tab `Regional Formats`
- Deutsch (Deutschland) auswählen
- Button `Apply System-Wide` drücken
3. Zeiteinstellungen:
- System Tools > Time and Date starten
- Time Zone: `Europe/Berlin` auswählen
4. Neustarten und beim anschließenden Dialog `Namen aktualisieren` wählen.
5. Internetverbindung herstellen über Network Manager Icon unten rechts
6. Systemupdates
```
sudo apt update && sudo apt upgrade
```
5. Neustarten, wieder im Modus "Run Lubuntu - persistent live" booten und dann Schritte 7-12 aus der obigen Anleitung zu VirtualBox ausführen
6. Konfiguration Browser
- Startseite auf http://localhost:8888/lab/tree/home/lubuntu/bibliotheks-und-archivinformatik setzen
7. Passwörter löschen (z.B. WLAN-Passwort)
8. Im Modus "Try Lubuntu without installing" booten
1. Datei `media/lubuntu/usbboot/boot/grub` bearbeiten
1. Menüeintrag `Try Lubuntu without installing` umbenennen in `Run Lubuntu - without changes (backup & restore)`
2. Die beiden Menüeinträge für Installation entfernen
2. Backup erstellen
```
cd /media/lubuntu/usbdata
bash backup
```
Bei Bedarf können Backups auf die gleiche Weise wiederhergestellt werden (mit `bash restore`). Die Partition `usbdata` ist in anderen Betriebssystemen lesbar (NTFS), so dass die Backups auch anderswo gespeichert werden können.
Zur Vervielfältigung der USB-Sticks bietet sich ein Disk Utility an, unter Gnome beispielsweise "Disks". Damit lässt sich ein Image erstellen und anschließend auf weitere USB-Sticks aufspielen.