== Virtualisierungs-Server (Debian bullseye) == <> === Vorne Weg: Einrichtung der Virtualisierungs-Software === Die Einrichtung der Virtualisierungs-Software wird je nach verwendetem Produkt beschrieben: * Virtualisierung mit [[Technik/Installation/VirtServer/LibVirt|LibVirt]] (empfohlen für 1-2 Server Schul-Setups) * Virtualisierung mit [[Technik/Installation/VirtServer/Ganeti|Ganeti]] (empfohlen für Multi-Server Schul-Setups) Im Weiteren wird jetzt die Installation und Basiskonfiguration eines Virtualisierungsservers beschrieben. === Vorbereitungen === Vor der Basisinstallation des ersten Virtualisierungs-Servers muss die [[Technik/Installation/InternetUplink|Internet-Anbindung]] der Schule entsprechend der IT-Zukunft Schule [[Technik/Netzwerk|Netzwerktopologie]] eingerichtet werden. Desweiteren muss eine Backbone-Switch für das Backbone-Netz (siehe [[Technik/Installation/InternetUplink|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 === * Ein startfähiges Medium mit [[ http://www.debian.org/CD/http-ftp/|Debian GNU/Linux stable]] (CD-ROM oder USB Stick) erstellen. Um Verwechslungen vorzubeugen: An dieser Stelle verwenden wir noch nicht Debian Edu / Skolelinux, das kommt erst bei der Installation der virtuellen Maschinen zum Einsatz. * Vom erstellten Medium den Virtualisierungs-Server booten. * Die folgende Antworten in den angezeigten Menüs auswählen: ''Install'', ''German'', ''Deutschland'' und ''Deutsch'' * Die Netzwerkschnittstelle mit Zugang zum Internet angeben (in Klammern markiert durch die Bezeichnung ''Copper''). Der Server sollte so verkabelt sein, dass {{{eth1}}} für das Backbone-Netzwerk genutzt wird. === Rechnernamen und erste Benutzer anlegen === * Rechnername: {{{virt-man-01}}} (weitere Virtualisierungs-Server werden durchnummeriert: {{{virt-man-02}}}, {{{virt-man-03}}}, etc.) * domain: {{{backbone}}} * Passwort für den Benutzer: {{{root}}} eintragen. ''Wichtig!!! Passwort notieren!!!'' * Vor- und Zuname für neuen/ersten Benutzer: {{{Local Administrator}}} * Benutzername für lokalen Administrator: {{{locadm}}} * Passwort für den lokalen Administrator eintragen und bestätigen. ''WICHTIG!!! Passwort notieren!!!'' * Im nachfolgenden Dialog des Debian Installers werden die Festplatten partitioniert. * Partitionierungs-Methode: manuell * root-Dateisystem: 40Gb, als Software RAID-1 (/dev/md0) konfigurieren * Swap-Space: Arbeitsspeicher +2Gb auf alle Platten/SSDs/NVMes gleichmäßig verteilen * Raid-Device (/dev/md0) als ext4-Dateisystem formatieren, Einhängepunkt: ,,/" * Software-Installationsprofil ({{{tasksel}}}): minimale Installation, zusätzlich SSH-Server auswählen 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. 1. 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" }}} 1. 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 }}} 1. Den Benutzer {{{locadm}}} seine {{{sudo}}}-Rechte wahrnehmen lassen:{{{ locadm@virt-man-01:~# newgrp sudo }}} 1. Nachinstallation von Software:{{{ locadm@virt-man-01:~# sudo apt-get install mc vim }}} 1. Server Neustart durchführen 1. Nach der Installation {{{vim}}} als Editor in den Debian "Alternatives" festlegen.{{{ locadm@virt-man-01:~# sudo update-alternatives --config editor }}} 1. Das Programm Midnight Commander starten (Kommando: {{{mc}}}): * F9 drücken * Optionen -> Konfiguration: [x] Internen Editor benutzen * Optionen -> Einstellungen speichern * F10: Midnight Commander beenden 1. 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 1. In {{{/etc/apt/sources.list}}} für alle Varianten {{{contrib}}} und {{{non-free}}} hinzufügen. 1. 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 1. /root/.ssh/id_rsa.pub -> /root/.ssh/authorized_keys auf backup-01 1. die Datei /etc/apcupsd/doshutdown erstellen:{{{ #!/bin/bash MY_UPS_SLAVES="backup-01" for host in $MY_UPS_SLAVES; do 0/dev/null 2>/dev/null done }}} 1.#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 # 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 # IP address on which NIS server will listen for incoming connections. diff --git a/default/apcupsd b/default/apcupsd index f8de693..b3d0e25 100644 }}} 1.#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 }}} 1.#6 zuletzt: invoke-rc.d apcupsd restart ==== Unter Verwendung des hardware-übergreifend nutzbaren 'Network UPS Tools' ==== /!\ FIXME: Dokumentation noch ausstehend!