Virtualisation
Objectif principal
Configurer des réseaux virtuels isolés et automatiser l’installation de deux invités (node01 et node02) sur un hôte Xen/KVM en utilisant virt-manager, virt-install et des fichiers kickstart.
Important : exécutez ces opérations en tant que root sur l’hôte physique. Ne laissez pas virt-manager ouvert inutilement — il consomme beaucoup de mémoire.
Variantes d’intention pertinentes
- créer réseaux virtuels isolés
- automatiser installation kickstart
- générer MAC pour invités virtuels
- démarrer VM via virt-install
- config réseau public/privé pour VM
D. Virtualisation
1. Réseaux virtuels
Lancez virt-manager en root :
virt-manager
La fenêtre Virtual Machine Manager doit apparaître. Vous verrez Domain-0 et les ressources qu’il utilise.
1.a Créer le réseau virtuel “public1”
- Dans le menu, cliquez sur Edit puis sur Host details.
- Dans la fenêtre Host Details, vous verrez “default” dans le cadre gauche. En dessous, cliquez sur Add.
- La fenêtre « Create a new virtual network » apparaît, cliquez sur Forward.
- Utilisez public1 (sans guillemets) puis Forward.
- Network : 192.168.222.0/24 puis Forward.
- DHCP range : Start: 192.168.222.128 End: 192.168.222.254 puis Forward.
- Choisissez Isolated virtual network puis Forward.
- Résumé :
- Network Name: public1
- IPV4 network: 192.168.222.0/24
- Gateway: 192.168.222.1
- Netmask: 255.255.255.0
- DHCP Start: 192.168.222.128
- DHCP End: 192.168.222.254
- Connectivity: Isolated virtual network
- Cliquez sur Finish.
Répétez les mêmes étapes pour créer private1 avec ces paramètres :
- Network Name: private1
- Network: 192.168.100.0/24
- Gateway: 192.168.100.1
- Netmask: 255.255.255.0
- DHCP Start: 192.168.100.128
- DHCP End: 192.168.100.254
- Connectivity: Isolated virtual network
Quand vous avez terminé, fermez Host Details (File > Close) puis quittez Virtual Machine Manager (File > Quit).
Important : ne laissez pas virt-manager ouvert si vous n’en avez pas besoin ; redémarrez Xen si la mémoire est trop utilisée.
Après création, vérifiez les interfaces virtuelles avec :
ifconfig
Exemple attendu (extrait) :
vnet0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.222.1 Bcast:192.168.222.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:7782 (7.5 KiB)
vnet1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:7712 (7.5 KiB)
2. Fichiers kickstart
Vous trouverez ci-dessous le kickstart pour node01, réutilisable pour node02 en modifiant les adresses IP, les noms d’hôte et le fichier node02_ks.cfg.
2.a Kickstart pour node01 (fichier node01_ks.cfg)
Conservez exactement ce bloc lorsqu’il est utilisé comme fichier de configuration. Les commentaires et directives doivent rester intacts :
#START of node01_ks.cfg
install
text
reboot
#uncomment the line you want to use
# for nfs
nfs --server=192.168.222.1 --dir=/var/ftp/pub/centos5u1
##url --url ftp://:@/
# this will be an anonymous ftp access
#url --url ftp://192.168.222.1/pub/centos5u1/i386
#key --skip
lang en_US.UTF-8
keyboard us
skipx
# private
network --device eth1 --bootproto static --ip 192.168.100.10 --netmask 255.255.255.0
# public - disabled on initial install
network --device eth0 --bootproto static --ip 192.168.222.10 --netmask 255.255.255.0 --gateway 192.168.222.1 --nameserver 192.168.222.1 --hostname node01.example.com
## password is n0de01pass
rootpw --iscrypted $1$Lqk1Y$Y8TIWCMLiiPjVt1GjRS0F1
## password is n0de02pass
#rootpw --iscrypted $1$Rn47b$DDwgrOv3IFGf3HVhsxv9X0
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Singapore
services --disabled ipsec,iptables,bluetooth,hplip,firstboot,cups,sendmail,xfs
bootloader --location=mbr --driveorder=xvda,xvdb --append="rhgb quiet"
clearpart --all --initlabel --drives=xvda
part /boot --fstype ext3 --size=100 --ondisk=xvda
part pv.2 --size=0 --grow --ondisk=xvda
volgroup VolGroup00 --pesize=32768 pv.2
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=1984
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
%packages
@development-libs
@system-tools
@gnome-software-development
@text-internet
@x-software-development
@dns-server
@core
@authoring-and-publishing
@base
@ftp-server
@network-server
@legacy-software-development
@java
@legacy-software-support
@smb-server
@base-x
@web-server
@printing
@server-cfg
@sql-server
@admin-tools
@development-tools
emacs
lsscsi
gnutls-utils
hwbrowser
audit
iptraf
mesa-libGLU-devel
kexec-tools
device-mapper-multipath
vnc-server
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
imake
iscsi-initiator-utils
ypserv
-sysreport
%post
cat <> /etc/hosts
# private or replace with nodeXY-
192.168.100.10 node01-priv
192.168.100.20 node02-priv
192.168.100.1 node00-priv
#public or replace with nodeXY
192.168.222.10 node01
192.168.222.20 node02
192.168.222.1 node00
EOT
# yum local repo
mv /etc/yum.repos.d/*.repo /tmp
cat > /etc/yum.repos.d/centos5.repo << EOF
[centos5-Server]
name=CEntos5 Server
baseurl=http://node00/centos5u1/i386
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
EOF
#change default runlevel
ed /etc/inittab << EOF
,s/id:5:initdefault:/id:3:initdefault:/g
.
w
EOF
# vncserver stuff
cat << EOT > /opt/vnc_xstartup
#!/bin/sh
# run vncserver and copy to your $HOME/.vnc/xstartup file
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 130x30+12+12 -ls -bg black -fg green -title "$VNCDESKTOP Desktop" &
mwm &
EOT
# END of nod01_ks.cfg
2.b Pour node02
Copiez node01_ks.cfg en node02_ks.cfg et adaptez hostname et adresses IP.
3. Installation des systèmes invités (node01 et node02)
Nous lancerons l’installation en CLI avec virt-install. Avant ça, générez des adresses MAC pour les interfaces des invités.
3.a Génération d’adresses MAC
Le script Python fourni dans le guide Red Hat peut être utilisé tel quel :
#!/usr/bin/python
# macgen.py script to generate a MAC address for Red Hat Virtualization guests
import random
#
def randomMAC():
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
return ':'.join(map(lambda x: "%02x" % x, mac))
#
print randomMAC()
# careful with the indention
# this is from the Virtualization guide from redhat.com
# http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.2/html/Virtualization/index.html
Exemple d’utilisation :
node01 NICs
# for eth0 . public1
[root@node00 ~]# ./macgen.py
00:16:3e:33:32:07
# for eth1 . private1
[root@ node00 ~]# ./macgen.py
00:16:3e:55:6b:83
Générez de la même manière les MACs pour node02.
3.b Commande virt-install pour node01
Conservez la commande suivante telle quelle pour lancer l’installation :
virt-install -p -n node01 -r 768 -f /dev/Virtual00VG/lvNODE01 -m 00:16:3e:33:32:07 \
-w network:public1 -m 00:16:3e:55:6b:83 -w network:private1 \
-l nfs:192.168.222.1:/var/ftp/pub/centos5u1/i386 \
-x "ksdevice=eth0 ks=http://192.168.222.1/centos5u1/node01_ks.cfg" --vnc
Paramètres clés :
- -n node01 : nom de la VM
- -r 768 : mémoire en Mo
- -f /dev/Virtual00VG/lvNODE01 : disque ou LVM à utiliser
- -m
: adresse MAC pour une interface - -w network:public1 / network:private1 : attache la NIC au réseau virtuel
- -l nfs:… : source d’installation
- -x “ksdevice=eth0 ks=…” : directives kickstart
- –vnc : ouvre la console VNC de l’installation
3.c Commande virt-install pour node02
virt-install -p -n node02 -r 768 -f /dev/Virtual00VG/lvNODE02 -m 00:16:3e:1e:05:b6 \
-w network:public1 -m 00:16:3e:40:3d:b0 -w network:private1 \
-l nfs:192.168.222.1:/var/ftp/pub/centos5u1/i386 \
-x "ksdevice=eth0 ks=http://192.168.222.1/centos5u1/node02_ks.cfg" --vnc
Conseil : lancez virt-install depuis une session VNC sur l’hôte physique pour voir automatiquement les écrans d’installation. Sinon, lancez en console : l’installation s’exécutera en arrière-plan et vous pourrez suivre avec virt-manager en ouvrant les invités.
Mini-méthodologie — checklist rapide pour l’administrateur
- Ouvrez virt-manager en root, créez public1 puis private1 (réseaux isolés).
- Fermez virt-manager pour libérer la mémoire.
- Créez ou adaptez node01_ks.cfg et node02_ks.cfg (éditions des IP/hostname).
- Générez MACs via macgen.py et notez-les.
- Créez volumes LV (lvNODE01, lvNODE02) ou préparez des partitions physiques.
- Lancez virt-install avec les options et vérifiez la console VNC.
- Après installation, vérifiez connectivité et /etc/hosts des invités.
Boîte factuelle — paramètres clés
- Plage public1 : 192.168.222.0/24 (gateway 192.168.222.1)
- Plage private1 : 192.168.100.0/24 (gateway 192.168.100.1)
- Exemple de préfixe MAC utilisé : 00:16:3e (Red Hat)
- Mémoire par VM dans l’exemple : 768 Mo
Dépannage courant
Problème : virt-manager consomme trop de mémoire.
Solution : fermez virt-manager, redémarrez le service Xen si nécessaire.Problème : l’install via NFS échoue.
Vérifiez que le serveur NFS est accessible depuis le réseau public1 (ping 192.168.222.1), et que le chemin /var/ftp/pub/centos5u1/i386 est exporté.Problème : l’interface d’un invité n’obtient pas d’IP.
Vérifiez la config DHCP du réseau virtuel et les plages (Start/End). Assurez-vous que le bon device est utilisé dans kickstart (ksdevice=eth0).Problème : mauvaise interface attachée.
Vérifiez l’ordre des options -m et -w dans virt-install ; associez chaque -m à la NIC correcte.
Alternatives et migrations
- Si vous utilisez des versions récentes de distributions (post-CentOS 7 / RHEL 7+), adaptez les directives kickstart (par ex. network –bootproto=none/–device=ens…) et le nommage des devices réseau (ens, eth selon le système).
- Pour une gestion plus centralisée, regardez libvirt+virt-manager combinés à Ansible pour automatiser le déploiement des kickstarts et des définitions de réseaux.
Checklist post-installation (rôle : administrateur)
- Vérifier que les deux VM démarrent automatiquement et que les interfaces publiques/privées fonctionnent.
- Valider /etc/hosts et résolution DNS si nécessaire.
- Appliquer les mises à jour de sécurité et configurer le pare-feu local selon la politique de l’entreprise.
- Sauvegarder les LVM ou créer des snapshots si supportés.
Résumé
- Créez d’abord les réseaux virtuels isolés depuis virt-manager, puis fermez l’outil pour économiser la mémoire.
- Préparez les kickstarts (node01/node02), générez les MACs, et lancez virt-install avec les paramètres adaptés.
- Testez la connectivité NFS et DHCP, et vérifiez les logs si une installation échoue.
Notes : adaptez les chemins et adresses IP à votre infrastructure. Ne publiez jamais de mots de passe en clair.
Matériaux similaires

Optimiser l'emplacement du routeur Wi‑Fi

Enregistrer un stationnement dans Google Maps

Prime Video ne fonctionne pas sur iPhone — Guide

Arbitrage crypto : guide complet et bots

Devenir influenceur Instagram au Royaume‑Uni
