Créer un Kickstart Red Hat pour automatiser les installation

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search
Red Hat

Software version RHEL 6.2
Operating System RHEL 6.2
Website Red Hat Website
Last Update 07/06/2012
Others

1 Introduction

Automatiser des installations de Red hat c'est vite indispensable si vous avez beaucoup de machines à déployer. C'est pourquoi il existe la méthode Kickstart qui vous permet de booter sur à peu prêt n'importe quoi.

2 Fichier Kickstart

Le fichier kickstart est là ou se trouvera toute les options d'installation et de configuration. Je ne vais pas décrire toutes les options disponibles car elles sont suffisamment documentées sur le site Red Hat, mais plutôt décrire quelques méthodes intéressantes pour arriver à faire certaines choses qui ne sont pas faisable nativement.

Voici l'exemple d'un fichier de kickstart très standard pour vous donner une idée :

Command ks.cfg
# Kickstart file
# Minimal installation for production usage
# Made by Deimos
 
# Install instead of upgrade
install
# Use text mode install
text
# Use CDROM installation media
cdrom
# Installation logging level
logging --level=info
 
# System keyboard
keyboard us
# System language
lang en_US
 
# Disable firewall
firewall --disabled
# SELinux configuration
selinux --disabled
 
# Root password
rootpw --iscrypted $1$6qaKy76d$R8ToaKxZD4Q89pJWrpE/y.
# System authorization information
auth  --useshadow  --passalgo=sha512
 
# Do not configure the X Window System
skipx
# System timezone
timezone --isUtc Europe/Paris
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
 
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
 
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=512
part pv.os --size=65536 --grow
part swap --size=1000 --maxsize=2000
volgroup vgos pv.os
logvol / --vgname=vgos --name=root --size=8096
logvol /var --vgname=vgos --name=var --size=8096
logvol /home --vgname=vgos --name=home --size=32768
 
# Packages installation
%packages
@base
%end
 
# Reboot after installation
reboot

2.1 Swap = RAM

Si vous souhaitez avoir la taille du swap égale à la taille de la RAM, il va falloir faire un script pre qui va stocker dans un fichier temporaire la ligne de création de swap. Puis elle sera appelée par le kickstart :

Configuration File ks.cfg
[...]
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=512
part pv.os --size=65536 --grow
volgroup vgos pv.os
%include /tmp/swappart
logvol / --vgname=vgos --name=root --size=8096
logvol /var --vgname=vgos --name=var --size=8096
logvol /home --vgname=vgos --name=home --size=32768
 
%pre
#!/bin/sh
act_mem=$(awk '/MemTotal/{print int($2/1024)}' /proc/meminfo)
echo "logvol swap --fstype swap --name=swap --vgname=vgos --size=$act_mem" > /tmp/swappart

2.2 Groupes de packages

Pour installer des groupes de packages dans la partie packages, il faut précéder le nom du groupe de packages par @. Par exemple voici comment récupérer la liste des groupes disponibles :

Command yum
> yum -v grouplist
Installed Groups:
   Base (base)
   Compatibility libraries (compat-libraries)
   E-mail server (mail-server)
[...]
Available Groups:
[...]
   High Availability (ha)
   High Availability Management (ha-management)
[...]
Available Language Groups:
   Afrikaans Support (afrikaans-support) [af]
[...]

Si par exemple, je souhaites ajouter le groupe High Availability, il faut que j'ajoute cette ligne :

Configuration File ks.cfg
# Packages installation
%packages
@base
@ha
%end

3 Création

3.1 DVD

Si vous souhaitez booter sur DVD, insérez un DVD orignal dans le lecteur, puis dumpez le quelque part sur votre machine :

Command
mkdir /mnt/rhdvd ~/iso
mount /dev/cdrom /mnt/rhdvd
cp -Rf /mnt/rhdvd/* ~/iso

Ensuite nous allons éditer le fichier isolinux.cfg pour y insérer les paramètres du kickstart à la fin :

Configuration File ~/iso/isolinux/isolinux.cfg
default vesamenu.c32
#prompt 1
timeout 600
 
display boot.msg
 
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.2!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
 
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfglabel vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset ks=cdrom:/ks.cfglabel rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

Rajoutez ensuite votre fichier kickstart (ks.cfg) à la racine de votre iso (~/iso).

Maintenant, nous allons générer la nouvelle ISO :

Command mkisofs
mkisofs -o ~/rhks.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "RedHatKS" .

Il ne vous reste plus qu'à charger/graver votre iso et laisser les choses faire :-)

4 References

http://ihazem.wordpress.com/2012/04/06/creating-dynamic-swap-space-during-linux-kickstart/
http://docs.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.3/html/Deployment_Guide/satops-kickstart.html
http://techspotting.org/creating-a-kickstart-cd-dvd-fedora-redhat-centos/
http://fedoraproject.org/wiki/Anaconda/Kickstart
http://ihazem.wordpress.com/2012/04/06/creating-dynamic-swap-space-during-linux-kickstart/