ACHTUNG - diese Anleitung ist veraltet - ab ins Archiv [[PageOutline]] = Einen !ProxMox 2 - Server aufsetzen = Diese Wikiseite beschreibt, wie man eine Proxmox-Virtualisierungsumgebung auf einem physikalischen Rechner aufsetzt. Zu Informationen über die Verwendung von Proxmox, z.B. Einrichtung einer neuen VM, siehe AdminProxmox/Verwenden. Ziel ist es einen !ProxMox 2.0-Server auf einem Debian6 (Squeeze) mit Raid1 über mehrere Platten und LVM zu installieren. == Debian Squeeze installieren == Man startet von CD oder USB-Stick einen Debian-Squeeze (6.X) Installer. Nach der Auswahl der Spache, Tastaturlayout, etc. muss man die Platte manuell einrichten. Wir verwenden mehrere Platten als Raid1-Array (maximale Sicherheit). === Raid1 === Zunächst muss auf allen Platten der gesamte Platz für Raid1 partitioniert werden. Seit Grub2 kann Grub direkt von einem LVM-Volume auf einem Raid1 booten (früher musste ein extra Raid1 für /boot erstellt werden, so steht es auch noch in der Proxmox-Anleitung http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze). '''auf jeder Platte:''' Partition für Raid (komplette Platte als Primärpartition) erstellen - Typ: RAID zuweisen - Bootflag setzen '''Software-RAID konfigurieren:''' MD-Gerät erstellen - Typ: Raid1 - alle Platten einbinden / Reservegeräte: 0 - Partitionen auswählen - erstellen === LVM === Nun muss ein LVM auf dem Raid1 aufgesetzt werden, das das Device /dev/md0 benutzt. In diesem LVM werden logische Volumes erstellt (Größe ist eigentlich unwichtig, da diese später verändert werden kann, das ist die Stärke von LVM): - LVM konfigurieren - zunächst eine Volumegruppe (pve) auf /dev/md0 erstellen. In dieser Gruppe werden vonm uns die Logical Volumes erstellt, die der Proxmox selbst zur Funktion benötigt. Die Logical Volumes, die in den VMs als Festplatten erscheinen, werden später vom Proxmox selbst in dieser VG erstellt. (Frage: sollte man hierfür eine eigene VG einrichten?) - logische Volumes für den Proxmox selbst einrichten - root - minimal 4 GB laut PVE-Wiki (bei uns: 10GB) - swap - ungefähr Größe des Hauptspeichers (bei uns 16GB) - eventuell data (falls OpenVZ verwendet werden soll) - hier lagern die OpenVZ-Container, Backups und die Konfigurationsdateien - Partitionsgöße je nachdem, wieviel benötigt wird - systembackup - Wird als "local storage" für Backups der VMs benutzt --> genügend Platz vorsehen! - unbedingt am Ende Platz freilassen, dann funktionieren auch die Sekundenbackups - Fertigstellen der LVM-Konfiguration - logische Volumes einhängen - root - Einhängen nach / - ext3 (empfohlen im PVE-Wiki) - swap - eventuell data - Einhängen nach /var/lib/vz - ext3 (empfohlen im PVE-Wiki) Damit sind die Partitionierarbeiten erledigt. Für die KVE-VM können virtuelle Harddisks als LVM-Volumes generiert werden. Diese können dann per Snapshot im laufenden Betrieb "angehalten" werden, das Snapshot kann man dann in ruhe sichern OHNE dabei die VM anhalten zu müssen. Nach dem Sichern wird das Snapshot einfach verworfen. === Installieren des Debian 6 - Systems === Das Basissystem wird nun installiert und gebootet. Weiter geht es dann nach der Installationsanleitung unter http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze Achtung: Editieren der Datei /etc/hosts notwendig, damit der pve-cluster die lokale IP auflösen kann {{{ 127.0.0.1 localhost IP Name.kg-fds.de Name }}} == Webmanagement-Konsole == Das Webmanagement erreicht man auf Port 443 (Proxmox2: Port 8006). - Der Zugang ist über OpenVPN bequem möglich, z.B.: https://10.32.1.2 (proxmoxpaedml), https://10.32.2.106 (proxmoxltsp6) - Aus dem roten Netz ist der Zugang im BelWUE-Router gesperrt (Tunneln über Port 22!). - Aus dem grünen Netz ist der Zugang über eine .htaccess-Datei in /usr/share/pve-manager/root/ ausgeschaltet (Tunneln über Port 22!). == VNC - Serverbildschirme == Proxmox stellt die VNC-Konsolen mit dem Befehl {{{ nc -v -l -p[PORT] -c "qm vncproxy [VMID]" }}} extern zur Verfügung und verwendet dazu allerdings das VNC2-Protokoll mit Authentifizierung und Verschlüsselung. Das kann derzeit nur TigerVNC (Windows) unter Linux kein einziger VNC-Client. Der mitgelieferte Java-Client hat bei mir nicht funktioniert. === OpenVZ === Für OpenVZ-Clients ist es mit dem Befehl {{{ vzctl enter [VMID] }}} kein Problem, in die VM zu kommen. Der Rest kann über das WebFrontend erledigt werden. === KVM === In der /etc/qemu-server/[VMID].conf (Proxmox2: /etc/pve/qemu-server/[VMID].conf) kann die Zeile {{{ args: -vnc 10.16.209.X:0, password # VNC-Konsole nur auf Lehrernetz args: -vnc :0, password # VNC-Konsole auf allen Interfaces }}} eingefügt werden, dann ist die VM aus dem grauen Netz auf Port 5900 erreichbar. Bei mehreren VNC-Konsolen die Null durch eine andere Zahl ersetzen. Damit die Konsole erreichbar ist muss nach dem Start der VM ein Passwort in der Konsole (qm monitor oder im WebInterface) ein Paswort setzen mit set_password vnc . == Weitere Installationen Zum praktischen Arbeiten mit dem neuen Proxmox braucht man noch ein paar Kleinigkeiten, die hier zusammengefasst sind: === Ssh-Schlüssel von root kopieren Während der Einrichtung des neuen Servers wurde ein ssh-Schlüssel für den Nutzer "root" neu erstellt. Den benötigen wir nicht, stattdessen werden wir unseren netzwerkweiten ssh-Schlüssel für root auf die neue Maschine kopieren: Auf dem neuen Proxmox: {{{ proxmox# cd .ssh proxmox# mv id_rsa.pub id_rsa.pub--disabled proxmox# mv id_rsa id_rsa--disabled }}} Vom **paedml** aus (für den richtigen Hostnamen einsetzen): {{{ paedml# scp id_dsa :.ssh paedml# scp id_dsa.pub :.ssh paedml# ssh-copy-id -l /root/.ssh/id_dsa.pub }}} Ab jetzt sollte man sich vom paedml auf dem proxmox und umgekehrt per ssh und ohne Eingabe des Passworts einloggen können. Abschließend die Passwortautentifizierung in /etc/ssh/sshd_config verbieten: {{{ PasswordAuthentication no }}} === Screen, kpartx, !PartEd, Subversion und LTSP-Setup-Skript Für das "abbruchsichere" Arbeiten auf entfernten Servern empfiehlt sich unbedingt das `screen`-Tool. Das Tool `kpartx` brauchen wir, um von außen in die virtuelle Festplatte des Clients schauen zu können (weil diese eine Partitiontabelle enthält). Früher oder später wird man auch `parted` nutzen wollen, um die Partitionstabelle des Hostsystems zu überprüfen. Schließlich brauchen wir das `subversion`-Paket, um die LTSP-Setup-Skripte per svn auszuchecken: {{{ proxmox# apt-get update proxmox# apt-get install screen kpartx parted subversion }}} Dann können die Skripte ausgecheckt werden (vgl. AdminSvn) mit {{{ proxmox# svn checkout svn+ssh://paedml.kg-fds.de/srv/svn/keplertools/LTSP-setup/trunk LTSP-setup }}} == Globale Proxmox-Umgebung konfigurieren Die Proxmox-Umgebung sollte jetzt bereits laufen. (Fast) alle weiteren Aktionen laufen nun über das Webadministrationsinterface ab. Man erreicht es unter - `https://:443` (Proxmox 1) - `https://` (Proxmox 2, wird weitergeleitet auf Port 8006) - `https://:8006` (Proxmox 2). Die Verbindung benutzt SSL mit einem selbstsignierten Zertifikat, man muss also bei der Verbindung bestätigen, dass das Zertifikat von keiner Authentifizierungsstelle zertifiziert wurde. Man erreicht das Webinterface des Proxmox, wo man sich mit dem bei der Installation festgelegten Nutzernamen und Passwort authentifiziert. === Lokales Storage für Backups anlegen === Lokales Storage für CD-Images anlegen == X-Verbindung zur VM (XDMCP) Damit Kollegen auch direkt an der proxmox-Maschine arbeiten können, als säßen sie direkt an der virtuellen Maschine, verwenden wir XDMCP. 1. Dazu muss **in der VM** XDMCP aktiviert werden: {{{ # cat >> /etc/lightdm/lightdm.conf < & }}} Damit dies bei jedem Start des Proxmox automatisch passiert, kann die obige Zeile **auf dem Proxmox** in die Datei `/etc/rc.local` eingefügt werden (vor dem `exit 0`). == Nur im Lehrernetz: Routing vom Lehrernetz ins Schülernetz In `/etc/network/interfaces` die folgenden Einträge hinzufügen: {{{ # Die beiden folgenden Einträge erlauben den direkten Zugriff auf die # Schülernetzserver aus dem Lehrernetz heraus: post-up route add -net 10.32.0.0 netmask 255.240.0.0 gw 10.16.112.8 post-down route del -net 10.32.0.0 netmask 255.240.0.0 gw 10.16.112.8 }}} Diese Einträge in der `interfaces`-Datei im Lehrernetz erlaben es, sich vom Lehrernetz direkt auf den Servern im Schülernetz einzuloggen: Über den proxmoxs.kg-fds.de (10.16.112.8) wird ein Routing vom grauen (Lehrer-) Netz ins grüne (Schüler-) Netz realisiert. Wenn man auf den ltspl-Servern eine Route für 10.32.0.0/12 einrichtet, kann man sich mit ssh ltsp[1..7] (wird vom shcp/dns aufgelöst) auf die ltsp-Server im Schülernetz einloggen.