21 novembre 2024

Tuto Virtualisation : Partie I, XEN 4.4

EDIT 2018 : Retrouvez cette série de tuto dans une grosse mise à jour ici : Xen et OpenVswitch sont dans une Debian 9 – V.2018

Première partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Nous allons procéder à l’installation de Xen.
Je pars du principe que votre LVM est déjà prêt et qu’un vg0 attend sagement que vous lui donniez vos vms.
Si ce n’est pas le cas, vous trouvez des infos dans le prélude de mon tutoriel : Préparation pour dédibox et LVM.

I – Installation

# apt-get install xen-linux-system xen-tools

Ensuite, nous allons demander à Debian de booter sur le bon noyau :

# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
# update-grub

Puis, on reboot, et au démarrage, on vérifie que Xen est Ok :

# xentop

 

II – Configuration

Modification du fichier /etc/xen/xl.conf :

# default vif script to use if none is specified in the guest config
 vif.default.script="vif-openvswitch"
# default bridge device to use with vif-bridge hotplug scripts
 vif.default.bridge="brint"

Puis dans le fichier /etc/xen-tools/xen-tools.conf, modifiez les lignes suivantes :

lvm = vg0
...
fs     = ext4
...
bridge = brint
...
passwd = 1
...
nohosts = 1

 

III – Xen et le temps.

Le hic avec les VMs, c’est que sans contrôle du temps, ça drift rapidement.
Ma solution, un serveur NTP sur le Dom0 qui donne l’heure aux vm par le vlansys.

# apt-get install ntp

Ensuite, on modifie le fichier /etc/ntp.conf :

# Local users may interrogate the ntp server more closely.
 restrict 127.0.0.1
 restrict 10.99.1.0 mask 255.255.255.0
 restrict ::1
...
broadcast 10.99.1.255

On redémarre, puis on vérifie que le serveur ntp se connecte bien à la strate ntp :

# ntpq -p

 

IV – Création du rôle et du squelette

A – Rôle

Pour automatiser certaines choses lors de l’installation de la vm, on va utiliser un rôle.
Créer un fichier /etc/xen-tools/roles.d/tuto :

#!/bin/sh
prefix=$1
if [ -e /usr/share/xen-tools/common.sh ]; then
    . /usr/share/xen-tools/common.sh
else
    echo "Installation problem"
fi<
chroot ${prefix} /usr/bin/apt-get update
chroot ${prefix} /usr/bin/apt-get upgrade -y
installDebianPackage ${prefix} udev
installDebianPackage ${prefix} htop
installDebianPackage ${prefix} bash-completion
installDebianPackage ${prefix} ntp
cp -a /etc/xen-tools/skel2/* ${prefix}

On le rend exécutable :

# chmod +x /etc/xen-tools/roles.d/tuto

 

B – Création du squelette

Le squelette est un répertoire dans lequel nous allons mettre des fichiers qui seront copiés sur les vms lors de l’installation.
Il existe un répertoire /etc/xen-tools/skel mais le contenu de celui ci est copié de façon automatique avant l’exécution des rôles, ce qui me pose quelques soucis. Nous allons donc en faire un autre et demander sa copie dans le rôle.

# cd /etc/xen-tools/
# mkdir skel2 && cd skel2
# mkdir etc

Dans ce répertoire (/etc/xen-tools/skel2/etc), créez un premier fichier ntp.conf (/etc/xen-tools/skel2/etc/ntp.conf) :

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 10.99.1.1
restrict 127.0.0.1
restrict ::1

Puis un fichier sshd_config (dans un sous répertoire ssh : /etc/xen-tools/skel2/etc/ssh/sshd_config)

Port 22
PermitRootLogin yes
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Terminez avec dernier fichier hosts (/etc/xen-tools/skel2/etc/hosts) :

127.0.0.1          localhost

Et voila, notre hyperviseur est enfin prêt, nous allons pouvoir passer à la Partie II : Installation d’OpenVswitch.

5 réflexions sur « Tuto Virtualisation : Partie I, XEN 4.4 »

  1. Salut
    Virtualisation de serveurs. Utilisation en milieu pro sans encombres depuis plusieurs années maintenant.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *