Et si vous pouviez utiliser Kickstart avec Oracle VM sans DHCP ni un ISO personnalisé ?
Créer un guest Linux sur Oracle VM pour x86 est un exercice d’autant plus amusant que les possibilités sont nombreuses. Vous pouvez créer un clone d’une machine virtuelle existante ou télécharger un template depuis Oracle Software eDelivery Cloud[1]. Vous pouvez également démarrer votre VM en mode HVM
et l’installer depuis le DVD. Vous pouvez évidemment utiliser Kickstart. Vous pouvez construire votre propre template sans démarrer la VM. Vous pouvez utiliser des fichiers OVF[2] générés par d’autres hyperviseurs tels que Virtualbox ou VMWare. Vous pouvez les construire à partir de serveurs physiques ou virtuels à l’aide de l’outil de conversion P2V.
Kickstart est probablement la méthode qui offre le plus de possibilité. C’est aussi la méthode la plus flexible et la plus rapide pour installer des systèmes linux basés sur des RPM tels que Oracle Linux. Lorsqu’il est utilisé avec des VMs, Kickstart permet de provisionner des guests en 2 à 10 minutes selon le nombre de RPM, la vitesse du réseau et la finesse du paramétrage. Plus important, une fois lancé, il est possible d’éviter toute interaction avec les utilisateurs. Malgré tout, il y a quelques contraintes et notamment le fait que Kickstart nécessite d’utiliser un ISO personnalisé ou de s’appuyer sur un serveur DHCP
pour gérer le démarrage en PXE
. Evidemment, il existe des outils de gestion[4][5] pour simplifier le processus. Et pourtant…
Oracle VM et Xen 4.2+ permettent de démarrer et d’installer un guest à l’aide d’un fichier de configuration Kickstart et un réseau statique. C’est possible grace au script xenpvboot
d’Oracle VM. Zhigang Wang de Oracle a intégré ce script, désormais nommé xenpvnetboot
[6], dans Xen 4.2. Cet article présente comment cette méthode fonctionne et à quel point les choses sont simplifiées
Fichier de configuration Kickstart
Pour démontrer cette fonctionnalité, vous devez utiliser un fichier de configuration Kickstart comme le fichier demo.cfg
ci-dessous. Le fichier ne dépend pas de la VM; il ne contient pas le nom du serveur ni la configuration réseau. Dans cet exemple, nous considérerons qu’il est accessible depuis cette URL http://yum.easyteam.fr/templates/demo.cfg même si vous ne pouvez pas l’utiliser :
cat demo.cfg # Demo Only KickStart File # - Packages are not up-to-date # - Packages are missing # - Highly unsecured # System Configuration and Installation firewall --disabled install url --url="http://yum.easyteam.fr/DVD" rootpw --iscrypted $1$gguQYHju$9Xq7w61deFUfZ3wLQNJqM1 auth --useshadow --passalgo=sha512 text keyboard fr lang en_US selinux --disabled skipx logging --level=info halt timezone Europe/Paris # Network # -- no need, it’s given as parameter # Storage Configuration bootloader --location=mbr zerombr clearpart --all part /boot --asprimary --fstype="ext3" --size=500 part pv.008002 --grow --size=1 volgroup vg_sys --pesize=4096 pv.008002 logvol / --fstype=ext4 --name=lv_root --vgname=vg_sys --grow --size=1 logvol swap --name=lv_swap --vgname=vg_sys --size=4096 %packages --nobase @core %end
Note 1 :
Ce fichier demo.cfg référence le DVD Oracle Linux 6 ISO publié à l’URL http://yum.easyteam.fr/DVD. Vous devrez également modifier cette URL et la faire correspondre à une URL existante dans votre configuration. Pour des raisons de sécurité, évitez d’utiliser cette configuration : elle n’inclut pas les erratas ; le mot de passe root est manager.
Note 2 :
Une fois installée, la machine virtuelle s’arrête automatiquement. De cette manière, vous pouvez changer son script de démarragexenpv(net)boot
enpygrub
.
Fichiers de configuration des Dom-U
Pour créer un domaine utilisateur Dom-U avec Kickstart et une configuration réseau statique dans Oracle VM, vous devez utiliser les paramètres[3] de boot de Linux/Anaconda et créer un fichier de configuration pour un guest paravirtualisé qui contient ce qui suit :
bootloader='/usr/bin/xenpvboot' bootargs='--args="ksdevice=eth0 network bootproto=static ip=192.168.0.108 netmask=255.255.255.0 gateway=192.168.0.1 dns=192.168.0.1 hostname=marvel.easyteam.fr ks=http://yum.easyteam.fr/templates/demo.cfg" http://yum.easyteam.fr/DVD/'
Pour une VM Xen 4.2+, les arguments sont un peu différents. le paramètre bootargs
nécessite d’utiliser le mot clé --location
pour référencer la distribution Linux :
bootloader='/usr/lib64/xen/bin/xenpvnetboot' bootargs='--args="ksdevice=eth0 network bootproto=static ip=192.168.0.108 netmask=255.255.255.0 gateway=192.168.0.1 dns=192.168.0.1 hostname=marvel.easyteam.fr ks=http://yum.easyteam.fr/templates/demo.cfg" --location http://yum.easyteam.fr/DVD/'
Configuration depuis le manager Oracle VM
Comme vous le savez, vous n’êtes pas supposé modifier les fichiers de configuration des Dom-U manuellement sur vos serveurs Oracle VM. Heureusement la console d’administration du manager permet d’implémenter cette fonctionnalité de manière directe. Lorsque vous créez un guest paravirtualisé, l’onglet « Boot Order » propose l’option « Network » qui indique d’utiliser le script xenpvboot
; Le paramètre « Network Boot Path » permet de lui passer ses arguments :
Si vous avez créé les bonnes ressources pour votre machine virtuelle (disque et carte réseau), vous pourrez l’installer en quelques minutes.
Note:
Une fois démarrée et installée, la VM est automatiquement arrếtée. Changez l’option de boot en « Disk ». Votre VM sera alors lancée à l’aide du scriptpygrub
et sa configuration sera persistante et stockée dans ses disques.
Et après ?
Kickstart est, de loin, la méthode la plus flexible pour automatiser les installations Oracle Linux 6. Oracle VM/xenpvboot
et Xen 4.2+/xenpvnetboot
permettent de lancer cette configuration en précisant les paramètres réseau directement depuis la console ou le fichier de configuration. Provisionner des machines virtuelles est simple, rapide et permet une personnalisation très fine.
Comme vous avez pu le découvrir dans l’article précédent, Les logiciels Oracle peuvent aussi être facilement fournis sous la forme de RPMs. Kickstart permet donc de gérer le provisionning autimatique de vos serveurs. Par la suite, vous pourrez:
- utiliser des scripts et les APIs pour aller encore plus vite
- gérer les installations de vos applications et leur configuration de manière tout aussi automatique
Les prochains articles décriront certaines de ces opérations.
Bibliographie
[1] Oracle Software Delivery Cloud – Oracle Linux and Oracle VM
[2] Open Virtualization Format Standard
[3] Red Hat Enterprise Linux 6- Installation Guide – Chapter 28. Boot Options
[4] Le site web de Cobbler
[5] Le site web de Spacewalk
[6] xenpvnetboot sur wiki.xen.org