Page suivante Page précédente Table des matières

7. Le fichier de configuration de KickStart

Le fichier de configuration se compose de trois sections principales:

  1. informations sur le système, partionnement des disques et configuration réseau;
  2. paquetages RedHat à installer;
  3. commandes shells à exécuter après l'installation.

Il existe d'autres possibilités que nous n'aborderons pas ici mais qui pourraient marcher. Pour de plus amples informations, regardez l'exmple de fichier de configuration de KickStart dans misc/src/install/ks.samp et le fichier doc/README.ks dans le répertoire i386 d'une distribution RedHat sur votre CD-ROM ou sur un site miroir de RedHat.

7.1 Information système

Les commandes que j'ai utilisées sont:

lang

Configuration de la langue, pour l'anglais:

lang en
network

Configuration du réseau, pour utiliser BOOTP/DHCP:

network --bootp
nfs

serveur NFS et répertoire à partir duquel l'installation doit avoir lieu:

nfs --server chicken.swedish-chef.org /mnt/cdrom
pour utiliser le serveur NFS chicken.swedish-chef.org et essayer de monter la distribution RedHat à partir du répertoire /mnt/cdrom.
keyboard

Sélection du type de clavier, pour un clavier anglais:

keyboard uk
zerombr

Efface le secteur d'amorçage du disque (MBR) - enlève tous les programmes de lancement pouvant s'y trouver.

clearpart

Efface les partitions existantes, pour supprimer toutes les partitions disque avant l'installation:

clearpart -all
part

Partionne le disque, pour créer un système de fichier de 500Mo:

part / --size 500
install

Effectue une nouvelle installation de RedHat.

mouse

Définit la souris utilisée, pour une souris PS/2 ou compatible:

mouse ps/2
timezone

Définit le fuseau horaire, pour l'heure anglaise:

timezone --utc Europe/London
rootpw

Définit le mot de passe initial de root, basé sur un mot de passe déjà crypté:

rootpw --iscrypted XaacoeGPmf/A.
lilo

Installe le programme LILO, pour l'installer dans le secteur d'amorçage du disque (MBR):

lilo --location mbr
%packages

Paquetages à installer - voir ci-après.

%post

Commandes shells à lancer après l'installation - voir ci-après.

Notez que le répertoire dans lequel KickStart va chercher la distribution RedHat doit contenir un sous-répertoire RedHat qui contient la distribution RedHat pour la plate-forme considérée. Dans notre exemple, nous devrions avoir quelque chose comme:

/mnt/cdrom/RedHat
/mnt/cdrom/RedHat/base
/mnt/cdrom/RedHat/contents
/mnt/cdrom/RedHat/i386
/mnt/cdrom/RedHat/instimage
/mnt/cdrom/RedHat/RPMS
/mnt/cdrom/RPM-PGP-KEY

Si vous souhaitez créer vos propres mots de passe cryptés, il vous suffit d'utiliser Perl:

% perl -e 'print crypt("schmurrdegurr", "Xa") . "\n";'p

Autres options que je n'ai pas testées:

cdrom

Installe à partir d'un CD-ROM plutô que du réseau.

device

Déclare explicitement les détails d'un périphérique, par exemple:

device ethernet 3c509 --opts "io=0x330, irq=7"
D'autres valeurs de device sont possibles dont scsi pour les contrôleurs SCSI et cdrom pour les gestionnaires de CD-ROM propriétaires.
upgrade

Met à jour une installation existante au lieu d'en installer une nouvelle.

xconfig

Configure le serveur X-Window, la carte graphique et le moniteur, par exemple:

xconfig --server "Mach64" --monitor "tatung cm14uhe"

Je n'ai pas beaucoup creusé cette dernière option car je ne prévois pas d'utiliser X sur les machines installées avec KickStart. Si vous le faites, tenez moi au courant.

Voici à quoi ressemble maintenant la première partie du fichier de configuration de KickStart:

lang en
network --bootp
nfs --server chicken.swedish-chef.org /mnt/cdrom
keyboard uk
zerombr yes
clearpart --all
part / --size 500
part swap --size 120
install
mouse ps/2
timezone --utc Europe/London
rootpw --iscrypted XaacoeGPmf/A.
lilo --location mbr

7.2 Paquetages à installer

La partie du fichier de configuration de KickStart consacrée aux paquetages débute par une ligne avec la directive %packages. Elle est suivie par l'un des deux types de spécifications de paquetage: des paquetages peuvent être installés individuellement en donnant le nom de leur RPM (sans la version ni la plate-forme), des groupes de paquetages peuvent être installés en donnant le nom de leur groupe.

Voici un exemple de la section des paquetages d'un fichier de configuration de KickStart:

%packages
@ Base
netkit-base
bind-utils
ncftp
rdate
tcp_wrappers
traceroute
cmu-snmp

Bien, à quoi correspondent ces groupes? Il y a un grand nombre de groupes définis par défaut dans un fichier nommé base/comps dans le répertoire racine de la distribution RedHat. Voici ceux que l'on pouvait y trouver au moment où j'écris ces lignes:

Vous noterez qu'ils correspondent aux différentes configurations qui vous sont proposées lors de l'installation manuelle. Notez également que certains paquetages sont présents dans plusieurs groupes, sans que cela pose de problème lors de l'installation. L'entrée d'un groupe dans la liste comps ressemble à quelque chose comme:

0 Extra Documentation
sag
lpg
howto
faq
man-pages
end

Il semble que les groupes dont le nom est précédé d'un 1 fasse partie de l'installation par défaut. Il semble donc possible de pousser un peu plus loin la personnalisation du processus d'installation en créant ses propres groupes ou en redéfinissant les groupes existant. Gardez moi au courant si vous essayez de le faire.

7.3 Commandes shell après l'installation

C'est probablement la fonctionnalité la plus intéressante et en tous cas celle qui n'a pas d'équivalent direct dans le processus d'installation manuel. Ce que nous pouvons faire ici est de définir un ensemble de commandes de niveau shell qui seront exécutées une fois l'installation terminée (partitionnement du disque, installation des paquetages, etc.)

Cette section débute par la directive %post dans le fichier de configuration de KickStart. Vous pouvez ensuite utiliser tous les utilitaires qui viennent d'être installés sur votre nouvelle machine Linux, par exemple:

%post
ln -s /etc/rc.d/init.d /etc/init.d
ln -s /etc/rc.d/rc.local /etc/rc.local
ln -s /usr/bin/md5sum /usr/bin/md5
ln -s /usr/bin/perl /usr/local/bin/perl
chmod ug-s /bin/linuxconf
mkdir /var/tmp/tmp
perl -spi -e 's!image=/boot/vmlinuz-.*!image=/boot/vmlinuz!' /etc/lilo.conf
rm /etc/rc.d/rc*.d/*sendmail

Vous pouvez également rediriger les flux standards:

cat <<EOF >>/etc/passwd
squid:*:102:3500:Squid Proxy:/usr/squid:/bin/bash
EOF

cat <<EOF >>/etc/group
cache:x:3500:
EOF

Modifier les scripts de lancement:

cat <<EOF >>/etc/rc.local
echo 8192 > /proc/sys/kernel/file-max
echo 32768 > /proc/sys/kernel/inode-max 

[ -x /usr/sbin/sshd ] && /usr/sbin/sshd
[ -x /usr/sbin/cfd ] && /usr/sbin/cfd

EOF

Définir les entrée de crontab:

cat <<EOF >/tmp/crontab.root
# Keep the time up to date
0,15,30,45 * * * * /usr/sbin/ntpdate -s eggtimer 2>&1 >/dev/null
# Recycle Exim log files
1 0 * * * /usr/exim/bin/exicyclog
# Flush the Exim queue
0,15,30,45 * * * * /usr/exim/bin/exim -q
EOF

crontab /tmp/crontab.root
rm /tmp/crontab.root

Et même installer d'autres RPM que vous avez créés:

rpm -i ftp://chicken.swedish-chef.org/rpms/squid.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/ssh.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/exim.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/cfengine.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/linux.rpm

ssh-keygen -b 1024 -f /etc/ssh_host_key -N ""
depmod -a


Page suivante Page précédente Table des matières