Outils pour utilisateurs

Outils du site


kickstart

Kickstart

Introduction

kickstart est un mécanisme d'installation automatique proposé par RedHat et CentOS.

Le principe consiste à automatiser les réponses aux différentes étapes de l'installation (configuration de la langue, du clavier, partitionnement des disques, etc.

Il “suffit” de démarrer le processus d'installation en fournissant un fichier kickstart. Cela peut se faire en créant son propre média d'installation ou en démarrant sur le réseau (PXE).

Ces fichiers peuvent être générés de 2 manières:

  • en éditant un fichier existant (par exemple le fichier /root/anaconda-ks.cfg ) généré par une installation manuelle type.
  • via l'outil graphique system-config-kickstart, qui a l'inconvénient de ne pas permettre la configuration de lvm

serveur dhcp

Il va répondre aux requêtes DHCP/BOOTP émises par les clients, y répondre (configuration réseau) puis leur indiquer le serveur à interroger pour récupérer la configuration de démarrage (noyau, initrd et paramètre de boot - notamment localisation du fichier kickstart - ).

pour dnsmasq il suffit de spécifier les lignes suivantes dans la configuration:

dhcp-boot=/tftpboot/pxelinux.0,lenine,192.168.10.128

lenine et 192.168.10.128 désigne respectivement le nom et l'adresse du serveur tftp

serveur tftp

yum install tftp-server systemctl enable tftp-server systemctl start tftp-server

Celui-ci met à disposition des clients pxe noyau, initrd, paramètres de démarrage afin d'initier l'installation.

pxe

Il faut installer les paquets:

  • syslinux
  • syslinux-tftpboot

Créer le fichier /var/lib/tftpboot/pxelinux.cfg/default ( créer le répertoire si nécessaire).

Ce fichier est récupéré par le client pxe. Il fait office de bootloader. Dans cet exemple, il présente un menu permettant de choisir un démarrage sur le disque local, ou une installation par le réseau.

UI menu.c32
MENU TITLE Boot Method


default local
label ^local
   TEXT HELP
   Boot to local disk
   ENDTEXT 
   BOOT menu ^Local
   TIMEOUT 200
   TOTALTIMEOUT 1200
   LOCALBOOT 0

label network
   TEXT HELP
   Boot on network, hopefully installing centos via kickstart
   ENDTEXT 
   BOOT menu ^Network install
   KERNEL /vmlinuz
   APPEND ksdevice=eth0 load_ramdisk=1 initrd=/initrd.img network ks=nfs:192.168.10.99:/srv/tftp/ks.cfg

Les 2 dernières lignes sont à modifier en fonction de votre configuration:

KERNEL noyau

APPEND ksdevice=eth0 load_ramdisk=1 initrd=initrd network ks=method:adresse

  • noyau fait référence au fichier de noyau qui doit se trouver dans le répertoire /tftpboot. Vous pouvez par exemple récupérer le noyau du cd d'installation
  • initrd fait référence au fichier initrd correspondant au noyau ci-dessus.
  • method indique le protocole à utiliser pour accéder au fichier kickstart, soit nfs, soit http
  • adresse renseigne l'adresse et le chemin vers le fichier kickstart. par exemple:

Insérer ensuite le DVD centos dans le lecteur physique ou virtuel de la machine

Créer le répertoire /var/lib/tftpboot/CentOS

Monter le CD dans ce répertoire

Copier les fichiers isolinux/{vmlinuz,initrd.img} dans /var/lib/tftpboot

Copier le fichier cp /root/anaconda-ks.cfg dans /var/lib/tftpboot/ks.cfg

Remplacer la ligne cdrom par

url --url "http://192.168.10.135/CentOS/"

Remplacer la ligne

clearpart --none

par

clearpart --all

fichier ks complet et fonctionnel dans Fichiers

Serveur apache

Pour publier les différents fichiers -et éventuellement servir de base à un la création d'un dépôt local

Configuration:

<VirtualHost *:80>
  ServerName localhost
  ServerAlias 192.168.10.99
  DocumentRoot /var/lib/tftpboot/
  errorlog /dev/null
  customlog /dev/null combined
  <Directory /var/lib/tftpboot/>
          require all granted
          Options indexes
  </Directory>
</VirtualHost>

kickstart

On peut utiliser system-config-kickstart pour le mettre au point.

Il faut ensuite le mettre à disposition suivant la méthode (http ou nfs) voulue, au bon endroit.

# vim: set filetype=dokuwiki:

kickstart.txt · Dernière modification: 2016/03/28 21:12 (modification externe)