Skip to content

Des VMs Debian en 45 secondes

banner_gntxen

Dans cet article, je vais vous détailler la configuration que j’ai mis en place avec Xen et Ganeti afin d’avoir des VMs Debian et Ubuntu déployables en 45 secondes chrono. Pour cela, on utilise Debootstrap qui permet de créer un environnement de base Debian.

Comme je vous le présentais dans mon post Cluster Xen et Ganeti, on peut facilement se mettre en place un IaaS privé afin d’entretenir un parc de machines virtuelles. Je vais donc vous montrer comment, grâce à debootstrap, on peut avoir des VMs déployables sur le réseau en moins d’une minute.

ganetixenn

Voici la liste des commandes à effectuer pour installer Xen et Ganeti sur un serveur Debian physique (vous pouvez le faire sur plusieurs, pour former un cluster de virtualisation).

Une fois que votre serveur est correctement installé et configuré, on va ajouter une variante Debootstrap à Ganeti, soit Debian Jessie. Pour cela on va créer le fichier /etc/ganeti/instance-debootstrap/variants/jessie.conf et y ajouter ceci :

ARCH="amd64"
SUITE="jessie"
EXTRA_PKGS="acpi-support-base,udev,less,grub2-common,lvm2,openssh-server,linux-image-amd64,vim,vlan,locales"

Ensuite on ajoute jessie à la liste de variantes (/etc/ganeti/instance-debootstrap/variants.list). Vous pouvez également faire de même pour trusty (Ubuntu 14.04).

default
jessie

Dernière étape, il va falloir remplacer le script qui créer la VM (création des volumes, copie du file-system…) depuis mon dépôt Github :

git clone https://github.com/valentin2105/Ganeti.git
cp -r Ganeti/os/debootstrap/create /usr/share/ganeti/os/debootstrap/create

Ce script améliore un peu le script de base de Ganeti en y ajoutant un LVM interne aux VMs, leurs propres kernels, les paquets qu’on souhaite avoir à sa création et une gestion automatique du réseau (IPv4/v6).

On peut maintenant lancer la création de notre première VM :

gnt-instance add -t plain --disk 0:size=20G --disk 1:size=200M -B memory=2G,vcpus=2 -o debootstrap+jessie --no-ip-check --no-name-check bigbang.domain.com

Grâce à cette commande, on crée la VM bigbang.domain.com avec 2Go RAM et 2 vCPUs.

La première création prend quelques minutes, car il télécharge les paquets à jours pour votre VM et en créer un cache. Cela permet de déployer ensuite les VMs très rapidement car il y a juste à copier le file-system. Les machines virtuelles possèdent une partition /boot de 200Mo et une autre de 20Go en LVM (dans l’exemple).

Il faut ensuite lancer cette commande pour que la VM utilise son propre kernel au prochain démarrage car au premier boot, la VM utilise le même kernel que la machine hôte, cependant un update-grub est ajouté dans le rc.local de la VM ce qui lui permet de bénéficier de son propre kernel présent dans sa partition /boot (une sorte de hook).

gnt-instance modify --hypervisor-parameters=kernel_path=/usr/lib/grub-xen/grub-x86_64-xen.bin bigbang.domain.com

Vous devriez pouvoir accéder à votre VM grâce à la console pour configurer votre accès SSH (cela est parfaitement automatisable) :

gnt-instance console bigbang.domain.com

debian_fristshell

Et voilà, vous avez bootstrapé votre première VM sous Debian, les autres se créeront très rapidement !  Vous pouvez jetez un coup d’œil dans le dépôt, il y a un script tout fait NewVM.sh qui permet de simplifier la création de VM en précisant leurs tailles, leurs puissances et leurs configurations réseau. Il faudra l’utiliser si vous voulez que votre machine virtuelle soit joignable directement via le réseau, sinon vous devrez manuellement lui donner une IP via la console Ganeti (dans /etc/network/interfaces).

Voici le Cheatsheet de management d’un Cluster Ganeti :

f6c61e04c0b3478f72b4606587c0d16324c3bdafbcd532cf2b4dcaa67ac415cb

Published inCLI ToolsCloudDebianDistribLinuxTutorielVirtualisation

Be First to Comment

Laisser un commentaire

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

Proudly hosted with Open-sources Softwares.