Ceci est une ancienne révision du document !
Xen
Cette page me sert d'aide-mémoire, une doc plus complète est dispo sur le Wikhan.
Si on veut jouer avec Xen (et en sélectionnant les recommandés utiles, donc pas “tout”) :
sudo apt install xen-tools xen-system-amd64 grub-xen-host qemu-utils gnupg arch-test bridge-utils qemu-system-xen shared-mime-info xdg-user-dirs
On fait un reboot et on voit si la commande “xl list” fonctionne, sinon faut bidouiller grub.
Réseau en local derrière un routeur
Le routeur gère déjà pas mal de choses, ça va être assez simple. Pour une version chez un hébergeur externe, voir la doc du Wikhan.
Donc on gère surtout surtout ce qui entre (input) et sort (output). On peut oublier les trucs genre forward, nat, etc.
Par contre il faut que chaque VM aie une ip interne sur le réseau local, pour ça on va configurer xen en mode bridge (mode par défaut).
On commence par voir quelle est le nom de nos interfaces réseaux :
ip a
Chez moi c'est enp2s0
.
On vérifie aussi l'ip interne donnée par la box (192.168.1.X dans l'exemple) et l'ip de la box (192.168.1.254 chez OVH, attention ça change suivant les opérateurs).
Ensuite on modifie /etc/network/interfaces
. On ajoute ceci (sans les commentaires) :
iface enp2s0 inet manual iface xenbr0 inet static bridge_ports enp2s0 # L'adresse locale donnée par le routeur address 192.168.1.X netmask 255.255.255.0 # L'adresse locale du routeur gateway 192.168.1.254
et on va commenter d'autres parties mais pas tout, et puis ajouter le pont à lo
, ce qui au final donne ça chez moi :
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). #source /etc/network/interfaces.d/* # The loopback network interface auto lo xenbr0 iface lo inet loopback # The primary network interface #allow-hotplug enp2s0 #iface enp2s0 inet dhcp iface enp2s0 inet manual iface xenbr0 inet static bridge_ports enp2s0 address 192.168.1.68 broadcast 192.168.1.255 netmask 255.255.255.0 gateway 192.168.1.254
Un petit reboot et tout devrait aller.
Au 30/06/2024 il y a toujours un bug présent, où l'interface eth0 est codé en dur dans la création des VM, alors que c'est enX0 qui est attendu.
La solution (en attendant le vrai patch) consiste à remplacer l'occurence de eth0
par enX0
dans /usr/share/xen-tools/common/40-setup-networking-deb
.
Sources/tickets :
Paramètres par défaut des VM
- /etc/xen-tools/xen-tools.conf
### Paramètres par défaut des VM # Groupe de volumes où le script va créer des volumes logiques lvm = VgPoste install-method = debootstrap # Spécifier le mot de passe root à la création passwd = 1 # Les tailles sont définie en octet comme suit : G=Giga, M=Mega, k=Kilo # Taille de la partition root où seront stockées les données size = 20G # RAM allouée à la machine memory = 1G # Taille de la partition swap swap = 1G # Système de fichiers fs = ext4 # Distribution installée # `xt-guess-suite-and-mirror --suite` : même distribution que le Dom0 dist = `xt-guess-suite-and-mirror --suite` # Les paramètres réseau gateway = 192.168.1.254 netmask = 255.255.255.0 broadcast = 192.168.1.255 # préciser le nom du bridge bridge = xenbr0 # On lance les VM via pygrub pygrub = 1 # Exécuter immédiatement après création. boot = 1 # copier les comptes utilisateur de l'hyperviseur sur les vms accounts = 1
Ajout de la clé ssh personnelle dans le squelette des VM nouvellement créées :
sudo mkdir -p /etc/xen-tools/skel/root/.ssh sudo chmod -R 700 /etc/xen-tools/skel/root nano /etc/xen-tools/skel/root/.ssh/authorized_keys
Et création d'une vm avec les paramètres par défaut et en laissant dhcp gérer les ip ?
sudo xen-create-image --hostname=vm1test --dhcp