27 avril 2024

Tuto Virtualisation V.2018 : Partie II, XEN 4.8

Seconde partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Dans la partie précédente, nous avons installer Debian, LVM, et fait quelques réglages.
Nous allons maintenant procéder à l’installation de Xen en version 4.8.

I – Installation

# apt-get install xen-linux-system-amd64 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 bien en place :

# 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
...
bridge = brint
...
passwd = 1
...
nohosts = 1

 

III – Xen et le temps.

Le petit soucis avec les VMs, c’est que sans contrôle du temps, ça drift rapidement.
La solution simple, c’est de mettre en place un serveur NTP sur le Dom0 qui donnera l’heure aux Domu 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

# service ntp restart

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/role.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
installDebianPackage ${prefix} net-tools
cp -a /etc/xen-tools/skel2/* ${prefix}
chroot ${prefix} ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime
chroot ${prefix} dpkg-reconfigure -f noninteractive tzdata

On le rend exécutable :

# chmod +x /etc/xen-tools/role.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 le 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 III : Installation d’OpenVswitch.

5 réflexions sur « Tuto Virtualisation V.2018 : Partie II, XEN 4.8 »

  1. Bonjour,
    Merci pour ces tutoriels tellement instructifs.
    Sinon, merci de supprimer < du fi< la ligne 9 du fichier role, car ça va générer une exception en debian 9.

  2. Merci pour le commentaire 😉
    Oui, j’essaye d’être un maximum didactique…

    Et oups en effet, faute de frappe pour le fichier, c’est corrigé 😉

  3. Bonjour,

    Pour la création du rôle c’est le fichier /etc/xen-tools/role.d/tuto qui faut éditer et non /etc/xen-tools/roles.d/tuto

    Merci pour ce superbe tuto !

Laisser un commentaire

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