|
|
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 :
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 :
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 :
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 :
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 :
|
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 :
~/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 :
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/