Base documentaire GNU/Linux et développement

Fiches techniques pour la configuration de machines GNU/Linux, de réseau et de développement logiciel

Outils pour utilisateurs

Outils du site


administration-systemes:installation-automatisee-kickstart

Installation automatisée par le réseau avec Kickstart

L’installation d’un système d’exploitation peut être facilement automatisée avec Kickstart. De nombreux exemples et détails sur son fonctionnement sont fournis par RedHat dans leur documentation.

Dans le cas d’une installation par le réseau, on commence par préparer un serveur tftp. Il est possible d’utiliser Kickstart avec une installation locale, en précisant comme se sera fait plus bas le chemin vers le fichier d’automatisation.

Installation et configuration d’un serveur FTP

Dans une installation Kickstart, il est possible de distribuer localement des fichiers d’installation sur un serveur contrôlé, ce qui allège la charge sur le réseau. Pour cette raison, un serveur FTP sera installé et distribuera certains fichiers de base.

On commence par installer le serveur ftp :

yum install vstdp

Installation des fichiers de démarrage

Ce serveur distribue les fichiers présents dans le répertoire /var/ftp/. On va donc envoyer l’intégralité du contenu de l’image .iso de CentOS de base que l’on veut vers le serveur.

NOTE: les paquets qui seront installés par Kickstart doivent être présents sur ce dépôt, sinon l’installation échouera.

Le contenu distribué sera installé dans le répertoire /var/ftp/ks/centos7/minimal. « minimal » car j’ai utilisé l’image CentOS-7-x86_64-Minimal-1708.iso.

root@orion # : mkdir /var/ftp/ks/centos7/minimal -p

On se place dans le répertoire du contenu de l’image .iso (extrait ou montée) et on copie le tout sur le serveur :

scp -r * root@172.18.0.253:/var/ftp/ks/centos7/minimal

Modification des droits utilisateur

Les fichiers distribués par le serveur ftp doivent appartenir à l’utilisateur ftp et disposer des droits de lecture :

chown root:ftp /var/ftp/ -R
find /var/ftp/ -type d -exec chmod go+rx {} \;
find /var/ftp/ -type f -exec chmod go+r {} \;

Activation du service et pare-feu

On active le service :

systemctl enable --now vsftpd

Et on l’autorise également au niveau du pare-feu :

firewall-cmd --zone=internal --add-service=ftp --permanent
firewall-cmd --reload

Création du fichier Kickstart

Mot de passe root

Pour générer le mot de passe de l’administrateur condensé en md5, on peut utiliser OpenSSL :

openssl passwd -1 "motDePasse"

Fichier d’exemple

RedHat fournit une documentation complète sur la syntaxe et les possibilités de Kickstart. Un fichier Kickstart de base peut être, par exemple :

install
url --url="ftp://192.168.123.253/ks/centos7/minimal/"
rootpw --iscrypted $1$sXw55DYk$XiErQvZiVlZT3rUsy8I3f1
auth  useshadow  passalgo=sha512
text
keyboard --vckeymap=fr --xlayouts='fr'
lang fr_FR
timezone Europe/Paris
bootloader --append="console=tty0 crashkernel=auto" --location=mbr --timeout=1 --boot-drive=vda
zerombr
clearpart --all --initlabel
part / --fstype="xfs" --ondisk=vda --size=1 --grow
%packages
@core
%end

Ce document est placé dans le fichier /var/ftp/centos7-base.ks avec les droits rendant la lecture possible au travers le service ftp (644).

Il est utile de préciser ici que le nom des périphériques disques est spécifique au types de bus utilisés, comme décrit dans la documentation Linux. En indiquant un périphérique disque appelé vda, le bus utilisé est nécessairement virtio.

Mise à jour de la configuration pour PXE

Le fichier de configuration de PXE (/var/lib/tftpboot/pxelinux.cfg/default) doit être modifié pour ajouter un menu ou changer un menu existant, en modifiant la ligne « APPEND » avec :

APPEND  initrd=/images/centos7/initrd.img ks=ftp://192.168.123.253/ks/centos7-base.ks

Ce qui donne un fichier complet :

default menu.c32
prompt 0
timeout 30
MENU TITLE Selection d'un système d'exploitation a demarrer

LABEL centos7_x64
    MENU LABEL CentOS 7 X64
    KERNEL /images/centos7/vmlinuz
    APPEND  initrd=/images/centos7/initrd.img ks=ftp://192.168.123.253/ks/centos7-base.ks

Démarrage d’une machine virtuelle

L’installation du système se fait sur une nouvelle image disque, créée avec qemu-img :

qemu-img create ~/.local/share/libvirt/images/pxe.qcow2 8G

Puis, l’installation de la machine, en utilisant le disque précédent :

virt-install --name=test-pxe \
             --os-type=Linux --os-variant=centos7.0 \
             --ram=2048 --vcpus=1 \
             --pxe --noautoconsole \
             --network bridge=virbrint \
             --disk ~/.local/share/libvirt/images/pxe.qcow2,bus=virtio

NOTE : l’installation échoue avec seulement 1Go de RAM, 2Go sont suffisants mais le minimum nécessaire est peut être plus petit.

L’installation du système d’exploitation est alors automatique, sans qu’aucune interaction ne soit nécessaire.

administration-systemes/installation-automatisee-kickstart.txt · Dernière modification: 2018/05/12 07:32 par Guillaume Bernard