
Sommaire :
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é
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) :
- initrd.img : http://mirror.centos.org/centos/6/os/x86_64/isolinux/initrd.img
- vmlinuz : http://mirror.centos.org/centos/6/os/x86_64/isolinux/vmlinuz
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 !
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 +)
Article lu 3307 fois
Belle image !! merci