Mittwoch, 3. April 2013

VMware Server 2.0 auf Ubuntu 12.04 LTS installieren

Ich habe (mal wieder) einen Ubuntu 12.04 LTS-Server mit einem VMware Server 2.0.2 versorgt. Dieses Produkt ist seit 2010 eingestellt, funktioniert aber immer noch prächtig. Allerdings ist die Installation unter einem neueren Linux nicht so einfach. Die Vorgehensweise ist für Fedora hier beschrieben. Unter Ubuntu macht man Folgendes:

Zuerst die notwendigen Pakete installieren:
apt-get -y install linux-headers-$(uname -r) build-essential patch unp module-assistant
Dann das Paket VMware-server-2.0.2-203138.x86_64.tar.gz auspacken und installieren:

unp VMware-server-2.0.2-203138.x86_64.tar.gz
cd vmware-server-distrib
./vmware-install.pl

Hierbei alle Werte auf den Vorgaben belassen, aber 'vmware-config.pl' noch nicht starten lassen. In der Datei '/etc/default/grub' diesen Eintrag setzen, um den NMI Watchdog zu deaktivieren:

GRUB_CMDLINE_LINUX="nmi_watchdog=0"

und die Änderung mit

update-grub2

aktivieren und rebooten. Danach diese Befehle eingeben, um VMware auf den neueren Kernel vorzubereiten:

cd ~
m-a prepare
ln -s /usr/src/linux-headers-`uname -r`/include/generated/autoconf.h /usr/src/linux-headers-`uname -r`/include/linux/autoconf.h
ln -s /usr/src/linux-headers-`uname -r`/include/generated/utsrelease.h /usr/src/linux-headers-`uname -r`/include/linux/utsrelease.h

Die obigen Befehle muss man auch eingeben, nachdem ein neuer Kernel installiert wurde.
wget http://www.jlbond.com/downloads/vmware-server-2.0.2-203138-linux_2.6.42+.tar.bz2
tar xvjf vmware-server-2.0.2-203138-linux_2.6.42+.tar.bz2
patch -d /usr/bin -p0 < vmware-config.pl.patch
pushd /usr/lib/vmware/modules/source
mkdir backups; cp -a *.tar backups/
mkdir working; ls *.tar | xargs -n 1 tar -C working/ -xf
pushd working
patch -p1 < ~/vmware-server-2.0.2-203138-linux-2.6.42.patch
tar cf ../vmci.tar vmci-only
tar cf ../vmmon.tar vmmon-only
tar cf ../vmnet.tar vmnet-only
tar cf ../vsock.tar vsock-only
popd; rm -rf working/ ;popd
pushd /usr/lib/vmware/lib; mv libxml2.so.2 SKIP-libxml2.so.2 ; popd

Danach kann VMware konfiguriert werden

vmware-config.pl

Hierzu benötigt man einen gültigen Lizenzschlüssel. Er beschwert sich auch über die Version des GCC Compilers - hier einfach die Frage, ob der Compiler ok ist, mit "yes" beantworten. Nach dem Ende des Skriptes läuft der Server schon und kann unter

http://<server>:8222/

oder

https://<server>:8333/

erreicht werden. Anmelden kann man sich mit den Zugangsdaten von Root, sprich Benutzername "root" und dessen Passwort. Hat er noch keines, muss eines mit

passwd root

vergeben werden. Sinnvollerweise erlaubt man als erstes einem anderen die Administration und entfernt dann wieder das Passwort für root beispielsweise mit

passwd -l root

Standardmäßig sind die Ports 902/TCP, 8222/TCP und 8333/TCP für alle offen. Sollte der Server am Internet betrieben werden, dann am besten über die Firewall sperren, z.B. so alle Zugriffe über eth0:

iptables -A INPUT -i eth0 -p tcp --dport 902 -j DROP
iptables -A INPUT -i eth0 -p tcp --dport 8222 -j DROP
iptables -A INPUT -i eth0 -p tcp --dport 8333 -j DROP

Will man dann selbst zugreifen kann man beispielsweise einen SSH-Tunnel aufbauen:

ssh -L 8222:localhost:8222 <server>

dann kann man über

http://localhost:8222/

auf den Server zugreifen.

11 Kommentare:

rephlex hat gesagt…

Danke für den großartigen Artikel! Hab allerdings einen Schreibfehler gefunden: Im ersten Listung muss es heißen:

"module-assistant" statt "module-asstistant".

Unknown hat gesagt…

Vielen Dank, ich hab den Fehler korrigiert!

charly hat gesagt…

Ich habe diese Anleitung umgesetzt bis vmware-config.pl.

Hier werde ich permanent nach den Kernel Headers gefragt.

Da ich das Problem nicht selbst lösen kann, bitte ich um Hilfe.

Unknown hat gesagt…

Hallo Charly,

kannst du bitte mal die genaue Ausgabe ab Eingabe des Befehls "vmware-config.pl" schicken?

charly hat gesagt…

Hallo Kurt,
hier die Ausgaben nach "vmware-config.pl".

....
where you are 1) an IT outsourcing company that is providing
outsourced IT services to a client company and 2) applicable only

Do you accept? (yes/no) y

Thank you.

None of the pre-built vmmon modules for VMware Server is suitable for your
running kernel. Do you want this program to try to build the vmmon module for
your system (you need to have a C compiler installed on your system)? [yes]

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

Your kernel was built with "gcc" version "4.6.3", while you are trying to use
"/usr/bin/gcc" version "4.6". This configuration is not recommended and VMware
Server may crash if you'll continue. Please try to use exactly same compiler as
one used for building your kernel. Do you want to go with compiler
"/usr/bin/gcc" version "4.6" anyway? [no] yes

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]


Hier weiss ich nicht was ich eingeben soll?

Bis zum Aufruf vmware-config.pl alles 100% nach Deiner Anleitung.

Unknown hat gesagt…

Charly gib mal die Ausgabe von

echo /usr/src/linux-headers-`uname -r`/include/

ein.

charly hat gesagt…

hier die Ausgabe

kernel? [/usr/src/linux/include] /usr/src/linux-headers-3.8.0-34-generic/include

The path "/usr/src/linux-headers-3.8.0-34-generic/include" is a kernel header
file directory, but it does not contain the file "linux/version.h" as expected.
This can happen if the kernel has never been built, or if you have invoked the
"make mrproper" command in your kernel directory. In any case, you may want to
rebuild your kernel.

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]

richy hat gesagt…

Bei mir hat eigentlich alles wunderbar funktioniert, nur komme ich von meinem Lappi nicht aufs webif.
Ich versuch es über https://server.ip:8333/ui
Leider passiert nichts weiter.
Ich habe einen ubuntu server 12.04 ohne x-server am laufen

Unknown hat gesagt…

Hallo,
danke für den hilfreichen Artikel, der mir bis jetzt auch geholfen hatte.

Allerdings wird für Ubuntu 12.04 angeraten die aktuellere Kernelversion 3.13.* zu verwenden, was ich auch tat.

Der Vmware Installer meldet nun richtiger Weise, dass die Moduldatei "version.h" nicht in den Kernel Quellen existiert. Weiter existierte bei meiner Installation eine "vmmi" Moduldatei in den Kernel-Quellen.
Ich habe dann:
1. Die vmmi Moduldatei aus den Quellen verschoben
und
2. Einen Soft-Link auf die "version.h" in "generated/uapi/linux/version.h" gesetzt.

Leider gibt es nun Fehler beim kompilieren.

Hat irgendjemand noch eine Idee, oder gibt es einen Patch den jemand geschrieben hat?

Wenn nicht, was ist eine sinnvolle Alternative zum VMWare Server 2, mein Server besitzt kein GUI und wird aus der Ferne per SSH gewartet...

Unknown hat gesagt…

Hi Kurt. After doing all the steps when starting a virtual machine it stops at 95% with errors like connection refused

Unknown hat gesagt…

Ich hab einige Probleme mit dem VMware Server 2.0 gehabt - regelmäßige Abstürze der VMs. Deshalb habe ich jetzt auf den VMware Player umgestellt.
Hier findet man eine sehr gute Beschreibung, wie man das macht.