Virtualisierungs-Server (Debian bullseye)

Vorne Weg: Einrichtung der Virtualisierungs-Software

Die Einrichtung der Virtualisierungs-Software wird je nach verwendetem Produkt beschrieben:

Im Weiteren wird jetzt die Installation und Basiskonfiguration eines Virtualisierungsservers beschrieben.

Vorbereitungen

Vor der Basisinstallation des ersten Virtualisierungs-Servers muss die Internet-Anbindung der Schule entsprechend der IT-Zukunft Schule Netzwerktopologie eingerichtet werden. Desweiteren muss eine Backbone-Switch für das Backbone-Netz (siehe Internet-Anbindung) bereit stehen, welche mit dem Backbone-VLAN des Internet-Routers verbunden ist.

Im Backbone-Netz ist standardmäßig ein DHCP-Server aktiv (auf Router für die Internet-Anbindung), so dass angeschlossene Systeme (neue aufzusetzende Server, Notebooks von System-Admins, etc.) sofort Zugriff auf das Internet bekommen können.

Basisinstallation

Der Virtualisierungs-Server stellt den virtuellen Maschinen Teile der Hardware standardisiert zur Verfügung. Der folgende Abschnitt beschreibt eine allgemeine Installation des ersten/zentralen Virtualiserungs-Servers. Die Details der Installation unterscheiden sich dabei je nach Hardware-Ausstattung des Servers und Nutzungsszenario (Größe der Schule, etc.). In den entsprechenden Textpassagen werden Beispielwerte angegeben, die an die Gegebenheiten der jeweiligen Schule individuell angepasst werden.

Installation starten

Rechnernamen und erste Benutzer anlegen

FixMe: Wenn der Server nach der Installation nicht bootet, sollte nach einem grub-install /dev/sdX, grub-install /dev/sdY UND grub-install /dev/md0 sowie einem anschließenden update-grub alles funktionieren (via Rescue-System von der Debian-Installer CD/DVD gestartet).

Grundeinrichtung

  1. Nachdem die Grundinstallation abgeschlossen ist als locadm einloggen.

  2. Den User locadm in die Gruppe sudo eintragen. Eingabe mit root-Kennwort bestätigen. Danach: ausloggen und wieder als locadm einloggen.

    locadm@virt-man-01:~# su -c "adduser locadm sudo"
  3. Der Posix-Gruppe sudo den Aufruf des Kommandos sudo ohne Eingabe des Passworts erlauben:

    locadm@virt-man-01:~# su -c "diff -u /etc/sudoers.orig /etc/sudoers"
    --- /etc/sudoers.orig   2012-07-27 12:43:30.000000000 +0200
    +++ /etc/sudoers        2012-07-27 12:42:07.000000000 +0200
    @@ -19,6 +19,6 @@
     # Allow members of group sudo to execute any command
     # (Note that later entries override this, so you might need to move
     # it further down)
    -%sudo ALL=(ALL) ALL
    +%sudo ALL=(ALL) NOPASSWD: ALL
     #
     #includedir /etc/sudoers.d
  4. Den Benutzer locadm seine sudo-Rechte wahrnehmen lassen:

    locadm@virt-man-01:~# newgrp sudo
  5. Nachinstallation von Software:

    locadm@virt-man-01:~# sudo apt-get install mc vim
  6. Server Neustart durchführen
  7. Nach der Installation vim als Editor in den Debian "Alternatives" festlegen.

    locadm@virt-man-01:~# sudo update-alternatives --config editor
  8. Das Programm Midnight Commander starten (Kommando: mc):

    • F9 drücken
    • Optionen -> Konfiguration: [x] Internen Editor benutzen

    • Optionen -> Einstellungen speichern

    • F10: Midnight Commander beenden
  9. Den Midnight Commander Editor (Kommando: mcedit) starten:

    • F9 drücken
    • Menüpunkt: Optionen -> Allgemein

    • "Backspace durch Tabs" auswählen
    • "Tabs mit Leerzeichen auffüllen" auswählen
    • "Return rückt automatisch ein" abwählen
    • Optionen-Dialog schließen, nochmal F9: Optionen -> Einstellungen speichern

    • F10: Editor beenden
  10. In /etc/apt/sources.list für alle Varianten contrib und non-free hinzufügen.

  11. In /etc/hosts die Einträge prüfen, fehlende Einträge ggf. ergänzen:

    127.0.0.1       localhost
    172.16.0.1      virt-man-01.backbone    virt-man-01
    
    172.16.0.41     tjener.backbone         tjener
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

Aktualisierung gezielter Pakete via ITZkS-Repository

Zusätzliche APT-Quellen werden hinzugefügt:

locadm@virt-man-01:~# sudo editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian bullseye main
"""

locadm@virt-man-01:~# sudo apt-get --allow-insecure-repositories update && apt-get install itzks-keyring && apt-get update

Aus diesen Quellen werden die folgenden Pakete installiert:

locadm@virt-man-01:~# sudo apt-get install itzks-systems-common
locadm@virt-man-01:~# sudo itzks-systems.do_preseed
locadm@virt-man-01:~# sudo apt-get update
locadm@virt-man-01:~# sudo apt-get purge avahi-daemon
locadm@virt-man-01:~# sudo apt-get install itzks-systems-virtman (postfix nur lokal, emails an locadm)

Installation von X2Go

Nach Installation des Pakets x2goserver und einer schlanken Desktop-Umgebung (z.Bsp. LXDE, XFCE) kann der Virtualisierungsserver grafisch über X2Go (unter dem Nutzerkonto locaadm erreicht und "bedient" werden:

root@virt-man-01:~# apt-get install x2goserver
root@virt-man-01:~# apt-get install lxde

Grund für die Nutzung von X2Go, insbesondere in Zusammenhang mit virt-manager: Die Bedienung der virtuellen Maschinen via virt-manager ist innerhalb einer X2Go-Sitzung viel performanter als die Ansteuerung der VMs mittels eines lokalen Virt-Managers und der Verbindungsweise ssh+qemu.

Einrichtung einer USV

Unter Verwendung des APC UPS Daemons

Auf virt-man-01 (USV_MASTER):

  1. ssh-keygen als root
  2. /root/.ssh/id_rsa.pub -> /root/.ssh/authorized_keys auf backup-01

  3. die Datei /etc/apcupsd/doshutdown erstellen:

    MY_UPS_SLAVES="backup-01"
    
    for host in $MY_UPS_SLAVES; do
        0</dev/null ssh -lroot $host shutdown -h -t 30 now "apcupsd UPS ${2} initiated
    shutdown" 1>/dev/null 2>/dev/null
    done
  4. in /etc/apcupsd/apcupsd.conf folgende Änderungen gemacht:

    --- a/apcupsd/apcupsd.conf
    +++ b/apcupsd/apcupsd.conf
    @@ -26,7 +26,7 @@
    #     940-1524C, 940-0024G, 940-0095A, 940-0095B,
    #     940-0095C, 940-0625A, M-04-02-2000
    #
    -UPSCABLE smart
    +UPSCABLE usb
    
    # To get apcupsd to work, in addition to defining the cable
    # above, you must also define a UPSTYPE, which corresponds to
    @@ -79,8 +79,8 @@ UPSCABLE smart
    # modbus    /dev/tty**       Serial device for use with newest SmartUPS models
    #                            supporting the MODBUS protocol.
    #
    -UPSTYPE apcsmart
    -DEVICE /dev/ttyS0
    +UPSTYPE usb
    +DEVICE
    
    # POLLTIME <int>
    #   Interval (in seconds) at which apcupsd polls the UPS for status. This
    @@ -135,12 +135,12 @@ ONBATTERYDELAY 6
    # If during a power failure, the remaining battery percentage
    # (as reported by the UPS) is below or equal to BATTERYLEVEL, 
    # apcupsd will initiate a system shutdown.
    -BATTERYLEVEL 5
    +BATTERYLEVEL 60
    
    # If during a power failure, the remaining runtime in minutes 
    # (as calculated internally by the UPS) is below or equal to MINUTES,
    # apcupsd, will initiate a system shutdown.
    -MINUTES 3
    +MINUTES 10
    
    # If during a power failure, the UPS has run on batteries for TIMEOUT
    # many seconds or longer, apcupsd will initiate a system shutdown.
    @@ -184,7 +184,7 @@ KILLDELAY 0
    #  information server. If netstatus is on, a network information
    #  server process will be started for serving the STATUS and
    #  EVENT data over the network (used by CGI programs).
    -NETSERVER on
    +NETSERVER off
    
    # NISIP <dotted notation ip address>
    #  IP address on which NIS server will listen for incoming connections.
    diff --git a/default/apcupsd b/default/apcupsd
    index f8de693..b3d0e25 100644
  5. dann noch apcupsd als "konfiguriert" markieren:

    --- a/default/apcupsd
    +++ b/default/apcupsd
    @@ -2,4 +2,4 @@
    
    # Apcupsd-devel internal configuration
    APCACCESS=/sbin/apcaccess
    -ISCONFIGURED=no
    +ISCONFIGURED=yes
  6. zuletzt: invoke-rc.d apcupsd restart

Unter Verwendung des hardware-übergreifend nutzbaren 'Network UPS Tools'

/!\ FIXME: Dokumentation noch ausstehend!

IT-Zukunft Schule: Technik/Installation/VirtServer/BasisBullseye (zuletzt geändert am 2022-09-14 19:59:04 durch MikeGabriel)