Erstellen eines virtuellen Servers (VPS) mit Debian 3.1 (Sarge) und OpenVZ

Version 1.0
Author: Till Brehm <t.brehm [at] howtoforge [dot] com >

In dieser Anleitung werde ich veranschaulichen, wie man einen Server für OpenVZ virtuelle Maschinen auf Debian 3.1 (Sarge) 32Bit Linux vorbereitet. Mit OpenVZ kannst Du mehrere Virtuelle Private Server (VPS) auf der gleichen Festplatte erstellen, ähnlich wie bei Xen und dem Linux Vserver Projekt. OpenVZ ist der open-source Zweig von Virtuozzo, einer kommerziellen Virtualisierungslösung, die von vielen Anbietern, die virtuelle Server anbieten, verwendet wird. Der OpenVZ Kernal Patch ist unter GPL lizenziert, die Benutzer-Level Tools sind unter QPL lizenziert.
Im ersten Kapitel erstelle ich den Linux Kernel für Debian mit den OpenVZ Patches. Daraus geht ein einfach zu installierendes .deb Paket hervor. Das ist sehr nützlich wenn Du OpenVZ auf mehr als einem Server installieren möchtest. Das daraus resultierende Debian Kernel Paket ist zum Download verfügbar unter downloads.howtoforge.com. Du kannst das erste Kapitel überspringen, wenn der vorinstallierte Kernel Deine Bedürfnisse erfüllt und installiere den Kernel wie in Kapitel 1.2 beschrieben wird.
An dieser Stelle möchte ich darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!
Bitte beachte: Wenn Du den vorübersetzten OpenVZ Kernel verwenden möchtest, kannst Du die Kapitel 1 und 1.1 überspringen und direkt zu Kapitel 1.2 übergehen. Wenn Du Deinen eigenen Kernel erstellen möchtest, lese bitte die Kapitel 1 und 1.1 bevor Du mit Kapitel 1.2 weitermachst.

1 Bereite Deinen Server auf das Hosten virtueller privater Server vor

Zuerst installieren wir einige Voraussetzungen für die Erstellung des Kernels.
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

1.1 Den OpenVZ Linux Kernel erstellen

Die Quelltexte des Kernels runter laden
Der OpenVZ Patch ist derzeit nur für den Kernel 2.6.8 verfügbar. Wir werden den vanilla Kernel von kernel.org verwenden, ihn patchen und nach unseren Bedürfnissen konfigurieren. Um die Quelltexte runter zu laden und zu entpacken, führe folgende Befehle aus:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2
tar xjf linux-2.6.8.tar.bz2
cd linux-2.6.8/

Den OpenVZ Patch beziehen und den Kernel patchen
Nun laden wir den OpenVZ Kernel Patch von OpenVZ.org runter und fügen ihn in die Kernel Quelltexte ein.
wget http://download.openvz.org/kernel/022stab064.1/patches/patch-022stab064-combined.gz
gzip -d patch-022stab064-combined.gz
patch -p1 < patch-022stab064-combined

Kernel Config für OpenVZ beziehen

OpenVZ.org bietet zahlreiche Kernelkonfigurationen an, von generic i686 Konfigurationen bis hin zu Konfigurationen, die für Unternehmen geeignet sind. Ich wähle die generic i686 Konfiguration. Du kannst auch eine andere Konfiguration auswählen, je nach Hardware und Prozessor. Die Konfigurationen können von hier runter geladen werden: http://openvz.org/download/kernel/
wget http://download.openvz.org/kernel/022stab064.1/configs/kernel-2.6.8-022stab064-i686.config.ovz
Führe nun "make menuconfig" aus, wähle "Load an alternate configuration file" und wähle die Datei "/usr/src/linux-2.6.8/kernel-2.6.8-022stab064-i686.config.ovz".
make menuconfig
Falls Du spezielle Kernel config Voraussetzungen hast, ändere sie jetzt. Wähle dann Exit und dann Save um die Kernel Konfiguration zu speichern.
make-kpkg clean
Nun erstellen wir den Kernel.
fakeroot make-kpkg --revision=OpenVZ.2.6.8 kernel_image
Falls der Prozess durch einen Fehler unterbrochen wird, führe Folgendes aus
make clean
und führe die vorherigen Befehle erneut aus, indem Du mit Folgendem beginnst
make menuconfig

1.2 Installation des OpenVZ Kernels

Wenn Du das erste Kapitel übersprungen hast, kannst Du den vorkompilierten Debian Kernel mit diesen Befehlen runterladen:
cd /usr/src/
wget http://downloads.howtoforge.com/debian_openvz_howto/kernel-image-2.6.8-022stab064-up_OpenVZ.2.6.8_i386.deb

Ganz gleich ob Du Deinen eigenen OpenVZ Kernel erstellt hast oder den vorkompilierten Kernel verwendest, führe Folgendes zur Installation aus:
dpkg -i /usr/src/kernel-image-2.6.8-022stab064-up_OpenVZ.2.6.8_i386.deb
Starte Deinen Server jetzt neu:
shutdown -r now

1.3 Installation der OpenVZ Tools

Füge die Paketdatenbank für OpenVZ Tools /etc/apt/sources.list hinzu:
echo "deb http://debian.systs.org/ stable main" >> /etc/apt/sources.list
apt-get update

Installiere die Pakete:
apt-get install vzctl vzquota
Nun solltest Du Deinen Sever neu starten:
shutdown -r now

2 Installiere und starte Deinen virtuellen privaten Server (VPS)

OpenVZ.org bietet vorbereitete OpenVZ template caches zum Download an:
http://openvz.org/download/template/cache/
Ich werde hier zeigen, wie man ein Fedora 4 minimal template installiert und startet. Die Schritte für die anderen template caches, unter http://openvz.org/download/template/cache/ verfügbar, sind genau die gleichen (für den Fall, dass Du Fedora 4 in einem VPS nicht installieren möchtest). Wenn Du Deine eigenen benutzerdefinierten templates erstellen möchtest, sieh Dir bitte Kapitel 3 dieser Anleitung an.
Lade das Fedora 4 template runter:
cd /vz/template/cache
wget http://download.openvz.org/template/precreated/fedora-core-4-i386-minimal.tar.gz

Erstelle einen VPS. Die ID des ersten VPS ist 101. Du kannst jede numerische ID wählen, solange die ID > 100 und einmalig ist.
vzctl create 101 --ostemplate fedora-core-4-i386-minimal --config vps.basic
Nun nehme ich ein paar Basiseinstellungen vor. Konfiguriere diesen VPS, sodass er beim Hochfahren automatisch startet:
vzctl set 101 --onboot yes --save
Richte den Hostnamen ein. Ersetze "test101.mytest.org" mit dem Hostnamen, den Dein VPS haben soll:
vzctl set 101 --hostname test101.mytest.org --save
Richte die IP des VPS ein. Ersetze 192.168.0.167 mit einer freien IP Deines Netzwerks:
vzctl set 101 --ipadd 192.168.0.167 --save
Richte den Nameserver im VPS ein. Ersetze 192.168.0.2 mit einem Nameserver, der von Deinem Server aus erreichbar ist:
vzctl set 101 --nameserver 192.168.0.2 --save
Starte die VM:
vzctl start 101
Starte den SSH Server:
vzctl exec 101 /etc/init.d/sshd start
Richte das Root Passwort in Deinem virtuellen Server ein:
vzctl exec 101 passwd
Nun kannst Du Dich auf Deinem virtuellen Server mit einem SSH Klienten wie z.B. PuTTY für Windows anmelden.
Um den Status des VPS zu sehen, führe Folgendes aus
vzctl status 101
Um den VPS zu unterbrechen, führe dies aus:
vzctl stop 101
Um Dir den Status aller VPS auf dem System anzeigen zu lassen, führe dies aus
vzlist -a

3 Dein eigenes Ubuntu OpenVZ VPS template erstellen

Installiere zunächst das debootstrap Dienstprogramm von Ubuntu. Dies ermöglicht es uns, Debian Sarge und Ubuntu Installationen zu bootstrappen.
cd /tmp
wget http://archive.ubuntulinux.org/ubuntu/pool/main/d/debootstrap/debootstrap_0.3.3.0ubuntu2_all.deb
dpkg -i debootstrap_0.3.3.0ubuntu2_all.deb

Nun bootstrappen wir die Ubuntu Installation. Ich verwende die VPS ID 110. Du kannst jede ID verwenden, solange sie nicht in Gebrauch und > 100 ist.
debootstrap --arch i386 breezy /vz/private/110 http://archive.ubuntulinux.org/ubuntu
Wende die Basiskonfiguration auf den VPS anwenden:
vzctl set 110 --applyconfig vps.basic --save
Lege eine Bezeichnung für das template fest:
echo "OSTEMPLATE=ubuntu-5.10" >> /etc/vz/110.conf
Richte die IP und den Nameserver ein. Wenn Du diese Warnung erhältst: "Warning: configuration file for distribution ubuntu-5.10 not found default used", ignoriere sie.
vzctl set 110 --ipadd 192.168.0.169 --save
vzctl set 110 --nameserver 192.168.0.2 --save

Füge weitere Paket-Quellen der sources.list des VPS hinzu:
echo "deb http://archive.ubuntulinux.org/ubuntu breezy-updates main restricted" >> /vz/private/110/etc/apt/sources.list
echo "deb http://archive.ubuntulinux.org/ubuntu breezy universe" >> /vz/private/110/etc/apt/sources.list
echo "deb http://security.ubuntu.com/ubuntu breezy-security main restricted" >> /vz/private/110/etc/apt/sources.list
echo "deb http://security.ubuntu.com/ubuntu breezy-security universe" >> /vz/private/110/etc/apt/sources.list

Starte den VPS:
vzctl start 110
Aktualisiere das System:
vzctl exec 110 apt-get update
vzctl exec 110 apt-get -u upgrade
vzctl exec 110 apt-get install ssh libedit2 openssh-client openssh-server quota

Deaktiviere gettys auf den Terminals:
vzctl exec 110 sed -i -e '/getty/d' /etc/inittab
Einige Mountpunkte reparieren:
vzctl exec 110 rm -f /etc/mtab
vzctl exec 110 ln -s /proc/mounts /etc/mtab

Führe apt-get clean aus, um unnötige Pakete zu entfernen:
vzctl exec 110 apt-get clean
Stoppe den VPS und entferne die IP Adressen:
vzctl set 110 --ipdel all --save
vzctl stop 110

Lösche die SSH host keys und erstelle ein Skript, das neue host keys beim ersten Starten des VPS generiert:
rm -f /vz/private/110/etc/ssh/ssh_host_*
cat << EOF > /vz/private/110/etc/rc2.d/S15ssh_gen_host_keys
#!/bin/bash
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ''
rm -f $0
EOF
chmod a+x /vz/private/110/etc/rc2.d/S15ssh_gen_host_keys

Komprimiere den VPS um die Installation zu erleichtern:
cd /vz/private/110
tar czf /vz/template/cache/ubuntu-5.10-minimal.tar.gz .

Hinweis: Der Punkt in der obigen Zeile ist Teil des Befehls! Es heißt ....tar.gz[space][dot]
Nun entfernen wir den VPS, den wir verwendet haben, um das template einzurichten:
vzctl destroy 110
Um eine Instanz auf unserem Ubuntu Server template zu erstellen, kannst Du diesen Befehl verwenden:
vzctl create 102 --ostemplate ubuntu-5.10-minimal --config vps.basic
folge dann den anderen Schritten, die in Kapitel 2 beschrieben werden.

4 Links

Alle Handelsmarken unterliegen den Eigentumsrechten ihrer Besitzer. OpenVZ ist eine Handelsmarke von SWSoft.

0 Kommentar(e)

Zum Posten von Kommentaren bitte