Installer une CENTOS 6 paravirtualisé sous Xen

Voici une petite procédure pour installer un VM CENTOS 6 sur un xen en ligne de commande et en utilisant le kickstart afin d’automatiser l’installation.

1 – Les prérequis et ce qu’il vous faut

  • 1 serveur xen qui tourne bien comme il faut
  • Les images d’installation de la centos 6 via le réseaux (cf chapitre 2)
  • Le fichier de conf xen et le fichier kickstart (cf chapitre 3)
  • De la connexion internet
  • Un bon café Big Boss

2 – Récupérer les images d’installation

Pour commencer, il va falloir booter sur l’image d’installation centos 6 Il s’agit des images suivantes (images d’installation par résaux) :

Nous allons les nommer vmlinuz-xen-install-centos6 et initrd-xen-install-centos6. Ces images seront téléchargé sur le serveur xen et mit dans le répertoire /boot :

wget http://mirror.centos.org/centos/6/os/x86_64/isolinux/vmlinuz -O /boot/vmlinuz-xen-install-centos6
wget http://mirror.centos.org/centos/6/os/x86_64/isolinux/initrd.img -O /boot/initrd-xen-install-centos6

 

3 – Le kickstart et la conf xen

a – Le kickstart

L’installation va se faire via un fichier kickstart. C’est ce qui permet d’automatiser toute l’installation d’un OS Centos ou Red Hat. Très pratique !! Soit vous récupérez le mien en local et vous l’adaptez, soit vous pouvez l’utiliser tel qu’elle à partir de l’url de mon site : kickstart-minimal6-x86_64.cfg : Voici un extrait :

text
skipx
install
url --url http://mirror.centos.org/centos/6/os/x86_64
lang fr_FR.UTF-8
keyboard fr-latin1
network --device eth0 --bootproto static
rootpw toctoc
firewall --enabled --port=22:tcp
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Europe/Paris
bootloader --location=mbr --driveorder=xvda --append="console=hvc0"
shutdown
# Partitioning
zerombr
clearpart --all --initlabel
part /boot --fstype ext2 --size=200 --asprimary --fsoptions="noatime"
part pv.2 --size=1 --grow --ondisk=xvda
volgroup VGSYS01 pv.2
logvol / --fstype ext4 --name=ROOT --vgname=VGSYS01 --size=5120
logvol swap --fstype swap --name=SWAT --vgname=VGSYS01 --size=1024
logvol /var/log --fstype ext4 --name=LOG --vgname=VGSYS01 --size=5120
logvol /home --fstype ext4 --name=HOME --vgname=VGSYS01 --size=5120

# Packages
%packages
@core
@base

Ce qu’il faut retenir sur ce fichier et qui a un impact sur l’installation  :

  • lang fr_FR.UTF-8 : il est en français !! oui oui … c’est ma langue :p
  • rootpw toctoc : le mot de passe root est « toctoc » => il sera à changer !!
  • passalgo=sha512 : l’algo de hash pour les mots de passe sera le sha512 !  un peu + dur à devinner !! :p
  • Concernant le partitionnement : – 1 partition /boot de 200 Mo – 1 partition / de 5 Go en ext4 (LVM) – 1 partition swap de 1 Go (LVM) – 1 partition /var de 5 Go en ext4 (LVM) – 1 partition /home de 5 Go en ext4 (LVM)

Vous pouvez bien entendu ajuster ce partitionnement avant l’installation en modifiant ce fichier. Sinon c’est du LVM, donc à tout moment, vous pouvez agrandir les partitions via les outils LVM. La taille du disque virtuelle devra être au minimum de 16,2 Go À noter également un nombre d’utilitaire que j’ajoute car cela facile l’admin de l’os et d’autre que je retire qui ne servent à rien (support matériel entre autre). L’idée est d’avoir une installation toute propre avec un minimum de paquet installé.

b – le fichier de conf XEN

Pour démarrer l’installation, il faut donc créer le fichier xen de la vm pour l’installation. Le voici :

kernel = "/boot/vmlinuz-xen-install-centos6"
ramdisk = "/boot/initrd-xen-install-centos6"
name = "centos"
memory = "2048"
disk = [ 'file:/home/vmfs/centos/disk.img,xvda,w', ]
vif = [ 'bridge=br0', ]
bootloader="/usr/bin/pygrub"
extra = "text ip=100.100.100.10 netmask=255.255.255.0 gateway=100.100.100.1 dns=8.8.8.8  ks=http://wp2013.freenux.fr/download/centos-6.4/kickstart-minimal6-x86_64.cfg"
vcpus=2
on_reboot = 'destroy'
on_crash = 'destroy'

Ce que vous devez adapter à minima pour qu’il fonctionne chez vous :

  • la mémoire et le vcpu en fonction de votre serveur
  • le disk : le chemin du disque « virtuel » (cf chapitre 4)
  • vif : l’interface réseau (le plus souvent br0 ou xenbr0, ça dépend de votre installation xen)
  • extra : les IP, Gateway etc , en fonction de votre réseau
  • le chemin du ks. Soit vous laissez  le lien qui point sur mon site, soit vous faite le votre, vous le déposez sur un serveur web et vous remplacer le mien par le votre :)

4 – Allez hop  ! On installe !

a – Création du disque virtuel

Nous allons créer un disque virtuelle qui servira de disque à la VM.

  • Ce disque aura pour taille au minimum 16,2 Go (bon ok 17 Go)
  • Il sera en mode seek – c’est à dire que la taille du disque virtuel sur le disque du serveur grossira de manière dynamique en fonction de l’espace réellement occupé.
# dd if=/dev/zero of=/home/vmfs/centos/disk.img oflag=direct bs=1M seek=17408 count=1

1+0 enregistrements lus
1+0 enregistrements écrits
1048576 octets (1,0 MB) copiés, 0,00824644 s, 127 MB/s

Vérifions sa taille :

# ll /home/vmfs/centos/disk.img
-rw-r--r-- 1 root root 18G oct. 12 17:47 /home/vmfs/centos/disk.img

All is good ! Big Smile

b – Lancement de la vm et installation

Démarrons maintenant notre installation :

# xm create centos6-install
Using config file "./centos6-install".
Started domain centos (id=27)

La vm est démarré et a pour ID la n° 27. Regardons ce qu’il s’y passe :

# xm console 27

Welcome to CentOS for x86_64

┌───────────────────────────────────────────────────────┐
│                                                       │
│ Waiting for NetworkManager to configure eth0.         │
│                                                       │
└───────────────────────────────────────────────────────┘

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen

Hop, l’installation démarre :

Bienvenue dans CentOS pour x86_64

                 ┌──────────┤ Configuration TCP/IP ├──────────┐
                 │                                            │
                 │ [*] Activer le support IPv4                │
                 │        (*) Dynamic IP configuration (DHCP) │
                 │        ( ) Manual configuration            │
                 │                                            │
                 │ [*] Activer le support IPv6                │
                 │        (*) Automatic                       │
                 │        ( ) Automatic, DHCP only            │
                 │        ( ) Manual configuration            │
                 │                                            │
                 │     ┌─────────┐         ┌───────────┐      │
                 │     │ Valider │         │ Précédent │      │
                 │     └─────────┘         └───────────┘      │
                 │                                            │
                 │                                            │
                 └────────────────────────────────────────────┘

  / Changer d'élément  |  Sélectionner | Écran suivan

Les écrans peuvent être différent en fonction des paramètres choisis

Bienvenue dans CentOS pour x86_64

        ┌──────────────┤ Configuration TCP/IP manuelle ├──────────────┐
        │                                                             │
        │ Saisissez l'adresse et le préfixe IPv4 et/ou IPv6. Pour     │
        │ l'IPv4, sont autorisés le masque réseau en quatre groupes   │
        │ séparés par un point ou le style CIDR. Les champs pour le   │
        │ passerelle et le nom du serveur doivent être des adresses   │
        │ IPv4 ou IPv6 valides.                                       │
        │                                                             │
        │ Adresse IPv4 :    100.100.100.10__ / 255.255.255.0___       │
        │ Passerelle :      100.100.100.1____________________________ │
        │ Serveur de noms : 8.8.8.8__________________________________ │
        │                                                             │
        │          ┌─────────┐                 ┌───────────┐          │
        │          │ Valider │                 │ Précédent │          │
        │          └─────────┘                 └───────────┘          │
        │                                                             │
        │                                                             │
        └─────────────────────────────────────────────────────────────┘

  / Changer d'élément  |  Sélectionner | Écran suivan

Si, éventuellement des paquets n’existent pas, pas grave, on continue tout de même :

Bienvenue dans CentOS pour x86_64

          ┌───────────────────┤ Paquet manquant ├───────────────────┐
          │                                                         │
          │ Vous avez sélectionné le paquet « tcpstat » pour        │
          │ l'installation. Ce paquet n'existe pas. Souhaitez-vous  │
          │ poursuivre ou annuler votre installation ?              │
          │                                                         │
          │   ┌─────────┐     ┌──────────────┐    ┌────────────┐    │
          │   │ Annuler │     │ Ignorer tout │    │ Poursuivre │    │
          │   └─────────┘     └──────────────┘    └────────────┘    │
          │                                                         │
          │                                                         │
          └─────────────────────────────────────────────────────────┘

  / Changer d'élément   |   Sélectionner   |   Écran

 

Bienvenue dans CentOS pour x86_64

          ┌─────────────┤ Démarrage de l'installation ├─────────────┐
          │                                                         │
          │ Démarrage du processus d'installation                   │
          │                                                         │
          │                           20%                           │
          │                                                         │
          └─────────────────────────────────────────────────────────┘

  / Changer d'élément   |   Sélectionner   |   Écran

 

Bienvenue dans CentOS pour x86_64

     ┌───────────────────┤ Installation des paquets ├────────────────────┐
     │                                                                   │
     │                                                                   │
     │                                 0%                                │
     │                                                                   │
     │                  Paquets terminés : 8 sur 390                     │
     │                                                                   │
     │ Installation de glibc-common-2.12-1.107.el6.x86_64 (107 Mio)      │
     │ Common binaries and locale data for glibc                         │
     │                                                                   │
     │                                                                   │
     │                                                                   │
     └───────────────────────────────────────────────────────────────────┘

  / Changer d'élément   |   Sélectionner   |   Écran

Et enfin, ça s’arrête, l’installation est terminé :

Running halt...

terminating anaconda...done
sending termination signals...done
sending kill signals...done
disabling swap...
        /dev/dm-1
unmounting filesystems...
        /mnt/runtime done
        disabling /dev/loop0
        /dev/pts done
        /selinux done
        /mnt/sysimage/boot done
        /mnt/sysimage/dev/pts done
        /mnt/sysimage/dev/shm done
        /mnt/sysimage/dev done
        /mnt/sysimage/home done
        /mnt/sysimage/proc/bus/usb done
        /mnt/sysimage/proc done
        /mnt/sysimage/sys done
        /mnt/sysimage/var done
        /mnt/sysimage/selinux done
        /mnt/sysimage done
waiting for mdraid sets to become clean...
halting system
System halted.

c – Configuration de xen pour la para-virtualisation

Il ne reste plus qu’à configurer xen pour qu’il lance la VM en para-virtualiser. Pour cela, faisons le fichier de configuration xen suivant nommé centos6.cfg :

#                                                   
#  Kernel + memory size
#
kernel      = '/boot/vmlinuz-3.2.0-4-amd64'
ramdisk     = '/boot/initrd.img-3.2.0-4-amd64'
vcpus       = '2'
memory      = '2048'

#
#  Disk device(s).
#
root        = '/dev/mapper/VGSYS01-ROOT ro'
disk        = [
                  'file:/home/vmfs/centos/disk.img,xvda,w'
              ]
#
#  Hostname
#
name        = 'centos'

#
#  Networking
#
vif         = [ 'mac=00:16:3E:EE:EE:133,vifname=sw-centos' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Les lignes à adapter sont les suivantes :

  • kernel = ‘/boot/vmlinuz-3.2.0-4-amd64’
  • ramdisk = ‘/boot/initrd.img-3.2.0-4-amd64’

Vérifiez bien dans votre /boot que c’est bien ce noyau la qui existe. Ensuite, il ne reste plus qu’à démarrer la vm :

# xm create centos6.cfg
Using config file "./centos6.cfg".
Started domain smtp03 (id=28)

Et voir ce que donne votre nouveau systeme :

# xm console 28

Et voila un CentoS 6 tout beau tout propre tout neuf Il peut y avoir quelques ajustements à faire. Me concernant j’ai du :

  • modifier le fichier de conf ifcfg-eth0 et supprimer la ligne concernant l’adresse mac (HWADDR= »00:16:3E:0C:71:F8″)
  • Copier depuis le serveur XEN les modules du noyau utilisé sur l’hôte virtualisé : # scp -r /lib/modules/3.2.0-4-amd64 root@100.100.100.10:/lib/modules/

Bon, enfin, si vous ne voulez pas faire toutes ces manips, voici la VM installée (bon j’ai ajouté 2 ou 3 paquets supplémentaires et le repo EPEL en +) Sweet Kiss

centos-6.4


Article lu 3306 fois

One comment

Laisser un commentaire