Déployer une vm Ubuntu 10.04 sur un serveur Xen Debian Lenny

 

Xen n'étant plus supporté par Ubuntu, mes serveurs Xen sont donc installés sous Debian Lenny Amd64 (le choix d'une installation 64 bits permettant de déployer des vm 32 ou 64 bits).

Pour rappel sur ma méthode d'installation habituelle : hyperviseur xen sur une Debian Lenny

Cependant on rencontre deux problèmes quand on veut installer une Ubuntu 10.04 :

  1. la version de debootstrap installée par la distribution Debian Lenny ne supporte pas la Ubuntu Lucid
  2. Ubuntu Lucid ne peut pas démarrer avec le noyau fourni pour les machines paravirtualisée

Il va donc falloir installer la distribution avec un boot pygrub.

Installer debootstrap

On va avoir besoins d'installer la version de debootstrap fournie par la version d'Ubuntu 10.04. Plusieurs méthodes sont possibles dont le téléchargement du fichier deb. On peut aussi jouer avec apt :

# vi /etc/apt/sources.list.d/tmp.list
deb http://fr.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu/ lucid main restricted

# apt-get update
# apt-get install -y --force-yes debootstrap
# rm /etc/apt/sources.list.d/tmp.list
# apt-get update

 

On met ensuite en place les scripts pour les xen-tools :

# cd /usr/lib/xen-tools/
# ln -s edgy.d/ lucid.d

 

Configuration de xen-tools

J'utilise plusieurs fichiers de configuration de xen-tools, j'en crée donc un nouveau comme ceci :

# vi /etc/xen-tools/xen-tools_ubuntu_1004_amd64.conf

install-method = debootstrap

size   = 20Gb      # Disk image size.
memory = 1024Mb    # Memory size
swap   = 1024Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = lucid     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.

gateway   = votre_passerelle
netmask   = 255.255.255.0

pygrub = /usr/bin/pygrub

passwd = 1

arch=amd64

mirror_lucid=http://fr.archive.ubuntu.com/ubuntu

ext3_options   = noatime,nodiratime,errors=remount-ro

serial_device = hvc0
disk_device = xvda

output    = /etc/xen/confs
extension = .cfg

 

Pour pygrub faire un lien :

# ln -s /usr/lib/xen-3.2-1/bin/pygrub /usr/bin/

 

Rôle pygrub

Pour finir il faut mettre en place un rôle xen-tools spécifique pour mettre en place un noyau spécifique :

# wget http://wejn.org/stuff/pygrub-role
# mv pygrub-role /etc/xen-tools/role.d/pygrub
# chmod a+x /etc/xen-tools/role.d/pygrub
# sed -i 's/linux-image-2.6-xen-amd64/linux-image-ec2/g' /etc/xen-tools/role.d/pygrub

 

Déploiement

# xen-create-image --hostname=HOSTNAME --ip=IP_ADDRESS --config=/etc/xen-tools/xen-tools_ubuntu_
1004_amd64.conf --role=udev,pygrub