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.

Das könnte Dich auch interessieren …