Tym-Project

From: SUPINFO
To: Tous
Subject: IT

Installer Vmware Server 2 Sur Un Kimsufi 250 (Ovh)

J’ai très récemment eu à installer Vmware Server version 2 sur un serveur dédié Kimsufi de Ovh. Plus précisément sur une Unbuntu 9.04. Facile ? Non ! Faisable ? Oui…

Mon souci principal à été de devoir me battre avec un script d’installation vieillissant, inadapté à l’architecture des noyaux récents. Je commence par installer un ensemble de paquets de base :

apt-get update &&  apt-get install build-essential ncurses-dev xinetd

“Le matin je compile un noyau, ça me décrasse le processeur !”

Ces paquets vont me servir à recompiler le noyau du serveur…et oui car les noyaux de Ovh ne sont par défaut pas modulaires. Avec uname -r je peux déterminer la version de mon noyau actuel. Avec cette information j’ai pu télécharger la configuration Ovh correspondante :

wget ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-64

Hop hop, je récupère la dernière version du kernel 2.6 :

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.5.tar.bz2

Et me voila partit dans une recompilation “classique” (sans utiliser de .deb par exemple) :

1
2
3
4
5
6
7
8
9
10
11
12
cd /usr/src

tar xvf /root/linux-2.6.33.5.tar.bz2

# je crée un lien symbolique pour respecter les règles de compilation d'un noyau
ln -s linux-2.6.33.5/ linux
cd linux

#un peu de nettoyage...
make clean && make mrproper

cp /root/2.6-config-xxxx-std-ipv4-64 ./.config

Un make menuconfig me permet d’accéder au menu de configuration du noyau :

La première chose à faire est de modifier le nom de votre noyau

Très important, activez la gestion des modules avec les options suivantes :

Vous pouvez bien entendu apporter des modifications supplémentaires à la configurations, mais j’ai tendance à le déconseiller pour un premier essai :) Une fois votre .config sauvegardé vous pouvez lancer la compilation :

make

Patience patience, cela peut durer un certain temps ! Copiez ensuite l’image du noyau dans /boot, pensez bien à la renommer :

cp arch/x86_64/boot/bzImage /boot/bzImage-`uname -r`-mod

Modifiez la configuration de [man]lilo[/man] (/etc/lilo.conf) pour prendre en compte votre nouvelle image :

image=/boot/bzImage-2.6.33.5-grsec-xxxx-grs-ipv4-64-mod

Mettez à jour le boot-loader…et croisez les doigts pour le reboot :

/sbin/lilo reboot

Et c’est partit pour une installation bien (trop) compliquée…

Votre serveur fonctionnant sur son beau noyau tout neuf, installez les headers du noyau en cours en lancez l’installation de Vmware Server : Attention, n’installez pas les modules tout de suite !

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /usr/src/linux

make headers_install

tar xzvf VMware-server-2.0.2-203138.x86_64.tar.gz

cd vmware-server-distrib

mkdir /lib/modules/`uname -r`

./vmware-install.pl

Before running VMware Server for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config.pl".
Do you want this program to invoke the command for you now? [yes] no

Vous allez maintenant devoir patcher les modules avant de les compiler. J’ai eu pas mal de soucis, et rassemblé les résultats dans le script qui suit. Elle est pas belle la vie ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

cd /tmp

wget http://www.tym-project.fr/blog/wp-content/uploads/2010/06/vmnet.tar
wget http://www.tym-project.fr/blog/wp-content/uploads/2010/06/vmci.tar
wget http://www.tym-project.fr/blog/wp-content/uploads/2010/06/vsock.tar
wget http://www.tym-project.fr/blog/wp-content/uploads/2010/06/vmmon.tar

for i in vmnet.tar vmci.tar vsock.tar vmmon.tar; do
    mv -vf $i
    /usr/lib/vmware/modules/source
done

tar xvf /usr/lib/vmware/modules/source/vmnet.tar -C /tmp
tar xvf/usr/lib/vmware/modules/source/vmci.tar -C /tmp

perl -pi -e 's,("vnetInt.h"),\1\n#include "compat_sched.h",' vmnet-only/vnetUserListener.c
perl -pi -e 's,("compat_page.h"),\1\n#include "compat_sched.h",' vmci-only/include/pgtbl.h

tar cvf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only tar cvf
/usr/lib/vmware/modules/source/vmci.tar vmci-only

# Des petites manipulations pour adapter l'architecture du noyau à quelque
chose de compréhensible par l'installer...
cat /usr/src/linux/include/generated/utsrelease.h >> /usr/src/linux/include/linux/version.h
ln -s /usr/src/linux/include/generated/autoconf.h /usr/src/linux/include/linux/

vmware-config.pl

Ayé, c’est installé !

Pour la postérité j’ai hébergé les différents modules patchés sur ce blog : vmnet.tar, vmmon.tar, vmci.tar et vsock.tar.

Après cela votre Vmware Server 2 est censé fonctionner correctement. Pour ma part j’ai un avis très mitigé sur la question : instabilités de l’interface web, réseaux virtuels très lents…mais je ne peux pas dire si cela vient de l’installation ou du serveur lui même.

Sources :

Bon courage ;-)

Comments