Installation d'un serveur de déploiement Linux par le réseau


prise réseau
Nous allons voir ici comment mettre en place un serveur d'installation de système Linux par le réseau. Les machines clientes devront biensûr être capables de booter en réseau (notion de PXE).

Pour que cela fonctionne, il nous faut 3 serveurs :

  • un serveur DHCP qui attribut des adresses IP aux machines clientes
  • un serveur TFTP qui permet le boot par carte réseau
  • un serveur Apache qui permet le transfert des fichiers pour l'installation

Dans l'exemple ici, la machine qui hébergera tous ces serveurs a pour adresse IP : 192.168.0.188

1. Le serveur DCHP

Pour que cela fonctionne, il vous faudra impérativement un serveur DHCP sur votre réseau. Vous pouvez consulter cette page pour savoir comment en installer un sous linux.

Je pars donc ici du principe que le DHCP est fonctionnel. On va devoir légèrement modifier sa configuration, pour qu'il puisse prendre en compte les boots PXE.

Rajoutez les ligne suivantes, avant la dernière accolade '}' de la configuration globale, dans le fichier /etc/dhcpd.conf :

# Adresse du serveur TFTP
next-server 192.168.0.188;
# Chemin où se trouve le fichier pxe sur le serveur TFTP
filename   "/linux-install/pxelinux.0"; 

Puis rechargez la configuration :

/etc/init.d/dhcpd reload

2. Mise en place du serveur TFTP

Pour installer le serveur tftp, lancez la commande suivante (sous Fedora) :

yum install tftp tftp-server

Ce dernier est lancé via xinetd.d. On peut donc voir la configuration via la commande suivante :

more /etc/xinetd.d/tftp

Attention, si dans ce fichier, vous avez une ligne comme celle-ci, il faudra la supprimer sinon le serveur ne pourra pas démarrer :

disable = yes

Pour installer le système d'amorçage pxelinux, on lancera la commande :

yum install system-config-netboot

Ceci s'occupera d'aller installer le fichier linux-install/pxelinux.0 dans le dossier du serveur, à savoir /tftpboot. Ce dernier sert aux cartes réseaux pour réaliser leur boot PXE, mais aussi pour afficher un menu permettant de choisir la distribution linux que l'on veut installer, quand le serveur en propose plusieurs.

Il ne nous reste plus qu'à démarrer le serveur TFTP :

/etc/init.d/xinetd restart

3. Mise en place du serveur Apache

Pour installer le serveur Apache, lancez la commande suivante (sous Fedora) :

yum install httpd

Et lancez le serveur :

/etc/init.d/httpd start

On va ensuite monter le contenu d'un CD d'une distribution linux dans un dossier accessible par le serveur Apache :

mkdir /var/www/html/pxe/fc7
mount -t iso9660 F-7-i386-DVD.iso /var/www/html/pxe/fc7/ -o loop

Si votre serveur est mis en place pour une certaine période, je vous conseille d'inscrire cette ligne dans le fichier /etc/fstab, afin que les montages soient rétablis au démarrage du serveur.

Vérifiez ensuite que les fichiers soient bien accessibles par un navigateur web, en allant à l'adresse :

http://192.168.0.188/pxe/

4. Création du fichier Kickstart

Le fichier kickstart est un petit fichier texte dans lequel sont inscrites toutes les options d'installation. Si le fichier n'existe pas, le serveur vous posera des questions à l'installation. Sa présence est donc nécessaire si vous voulez réaliser des installations automatiques.

Il existe un utilitaire graphique de création de ce type de fichier que l'on peut installer et lancer comme ceci :

yum install system-config-kickstart
system-config-kickstart

Screenshot kickstart

Choisissez les paramètres que vous souhaitez pour l'installation de votre distribution. Il faut savoir que chaque paramètre qui n'est pas rempli sera demandé à l'installation. Cela est pratique notamment si on veut un partitionnement différent pour certaines machines par exemple.

L'utilitaire va ensuite nous proposer de sauvegarder un fichier nommé ks.cfg.. Mettez le dans un endroit également accessible par le serveur web, /var/www/html/pxe/ par exemple.

5. Configuration du pxeboot

Lancez la commande suivante pour ouvrir l'utilitaire de configuration graphique du boot PXE :

system-config-netboot

Screenshot kickstart

Et indiquez :

  • un nom pour l'installation
  • la méthode d'installation
  • l'emplacement du fichier kickstart
  • l'adresse IP du serveur TFTP
  • l'emplacement des paquets sur le serveur Apache

Une fois validée, ceci devrait vous créer une nouvelle entrée dans le menu de boot pxe, et plus précisément dans le fichier /tftpboot/linux-install/pxelinux.0

Il ne reste plus qu'à tester votre serveur, en effectuant un boot réseau (souvent la touche F12 au démarrage) avec une machine cliente.


21 Commentaires pour "Installation d'un serveur de déploiement Linux par le réseau"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    A noter qu'il est possible de tester le bon fonctionnement de votre serveur TFTP.
    Voici un exemple des lignes de commande que l'on peut utiliser :

    [pti-seb@localhost ~]$ tftp 192.168.0.188
    tftp> get /linux-install/pxelinux.0
    tftp> quit
    [pti-seb@localhost ~]$ ls | grep pxe
    pxelinux.0

    RépondreRépondre
    pti-seb , le 26 mai 2007 à 19:47
  •  

    Tuto très sympa (pourquoi ne pas le mettre sur fedora-fr.org).

    Par contre, il serait plus propre de remplacer :
    "/etc/init.d/xxx reload"
    par
    "service xxx reload".

    Et l'édition du fichier de config d'xinetd par :
    "chkconfig tftpd on"

    A+

    RépondreRépondre
    Remi , le 16 juin 2007 à 00:03
  •  

    @Remi : il existe déjà un tutorial la dessus sur fedora-fr.org. Le miens est une approche différente (pas forcement la meilleure).

    Pour les commandes, je préfère toujours utiliser les /etc/init.d/xxx qui sont communes à plusieurs distributions, tandis que la commande "service" est spécifique à redhat il me semble.

    RépondreRépondre
    pti-seb , le 16 juin 2007 à 00:24
  •  

    Rémi,

    le
    service xxx reload
    est bien trop orienté "RedHat", alors que le
    /etc/init.d/xxx reload
    S'applique sur la plupart des distribution.

    Sinon, pti-seb, je n'ai pas encore essayé de mettre en application cette procédure mais le principe est pas mal.

    @+

    class="yarr">RépondreRépondre
    Pololilo , le 27 août 2007 à 17:04
  •  

    Svp il faut combien de pc pour ce tp ??

    RépondreRépondre
    momo , le 29 octobre 2007 à 18:01
  •  

    @momo : au moins 2, un sur lequel tu installe tous les serveurs et un autre qui servira à installer la distribution en pxe.

    RépondreRépondre
    pti-seb , le 29 octobre 2007 à 18:55
  •  

    merci !!!

    RépondreRépondre
    momo , le 30 octobre 2007 à 17:28
  •  

    Exellent tuto !

    Je boot bien par pxe mais il me demande un kernel en scrutant des sous repertoire /8 /default
    Quel type de kernel lui donner dois en creer un specifique ou puis je en recuperer un
    merci

    RépondreRépondre
    fouduvolant , le 10 décembre 2007 à 15:51
  •  

    dans votre tuto vous dites
    "Ce dernier sert aux cartes réseaux pour réaliser leur boot PXE, mais aussi pour afficher un menu permettant de choisir la distribution linux que l'on veut installer, quand le serveur en propose plusieurs. "

    comment faire pour avoir plusieur choix de distrib

    RépondreRépondre
    fouduvolant , le 11 décembre 2007 à 08:55
  •  

    Bonjour juste un petit probleme au niveau du boot tftp ?
    Si quelqu'un pouvais m'aider

    RépondreRépondre
    oufra , le 21 avril 2008 à 15:15
  •  

    Bonjour,

    très beau site au passage. Vraiment très bonne explication et je pense le mettre en place d'ici peux. Seulement quelques explications supplémentaire, sur le choix de la distribution lors du boot du client serait plus pratique, genre une fedora, un ubuntu, ...

    Aurriez vous quelques liens où quelques conseils?

    Merci

    RépondreRépondre
    trucky , le 14 mai 2008 à 12:48
  •  

    @trucky : kickstart est un logiciel qui est fait pour Fedora, Red-hat et Centos. Je ne suis pas sûr que cela fonctionne pour Ubuntu.

    RépondreRépondre
    pti-seb , le 14 mai 2008 à 14:12
  •  

    Bonjour,
    Kickstart fonctionne avec Ubuntu (mais pas encore avec Debian (etch) même si Ubuntu est dérivé de Debian)
    Soit dit en passant : Debian aura un support pour kickstart avec les prochaines version (lenny et sid)
    Parcontre il y a encore certains bug (pour kickstart et Ubuntu), pour les connaître, consultez la doc ubuntu qui en explique quelques uns.

    PS : Tuto intéressant

    RépondreRépondre
    soleuu , le 19 mai 2008 à 12:43
  •  

    Il ne nous reste plus qu'à démarrer le serveur TFTP :

    /etc/init.d/xined restart

    il faut lire
    /etc/init.d/xinetd restart

    si je ne m'abuse, sinon c'est un super tuto pour booter une fedora, par le reseau, par contre je cherche à faire booter des ubuntu par le meme ordi, et apparament les fichier de boot pxe ne sont pas incorporés dans le dvd....le systeme-config-netboot me retourne une erreur en http 404....une idée ?.

    RépondreRépondre
    stephane de labrusse , le 24 mai 2008 à 19:16
  •  

    @stephane de labrusse : merci, j'ai corrigé l'erreur. Sinon pour Ubuntu, comme dit dans les autres commentaires, je sais pas comment on fait.

    RépondreRépondre
    pti-seb , le 25 mai 2008 à 15:54
  •  

    Article très intéressant, il est tout quelle licence ?

    RépondreRépondre
    Capof , le 11 juin 2008 à 17:03
  •  

    @Capof : regarde en bas, tous est sous copyright. A une époque je publiais sous des licences creative commons, mais il y a eu trop d'abus. Donc maintenant, toutes reproduction son interdites.

    RépondreRépondre
    pti-seb , le 11 juin 2008 à 17:12
  •  

    Bonjour,
    j'ai un problème au niveau du boot tftp
    il obtient bien son adresse DHCP mais au niveau TFTP j'ai un message d'erreur:
    "No reply from tftp"
    si vous avez une idée je suis preneur..
    Merci

    RépondreRépondre
    Eric , le 27 mars 2009 à 12:10
  •  

    Comment faire le déployement d'un système d'exploitation ubuntu sous linux

    RépondreRépondre
    diango , le 29 octobre 2011 à 17:12
  •  

    Bonjour,
    doc très instructif pour les débutants comme moi.
    Peut-on avoir la mm doc, mais pour l'environnement Debian ?

    RépondreRépondre
    cloba , le 3 janvier 2012 à 16:26
  •  

    Salut Je veux savoir si c est possible dajouter un images windows xp et 7 dans ce serveur :D
    Danby

    RépondreRépondre
    Danby , le 18 février 2012 à 16:18
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum