2009
10.28

Pour créer un serveur de déploiement , il faut que la machine soit :

Il faudra ensuite récupérer les fichiers nécessaires à l’installation, et configurer le tout.

Le nom de mon serveur est : serveur-debian
l’adresse ip est fixe , est est définie comme: 192.168.1.1

1. Configuration du serveur DHCP

on va récupérer le packet

aptitude install dhcp3-server

La configuration se passe en 2 étapes:

  • on définie l’interface réseau de notre serveur dhcp dans le fichier /etc/default/dhcp3-server
  • On configure le serveur dhcp dans le fichier /etc/dhcp3/dhcpd.conf

Le fichier dhcpd.conf

Exemple de fichier dhcpd.conf

ddns-update-style interim;
ignore client-updates;
#— autorisation du pxe —–
allow bootp;
allow booting;
#— définition des serveurs DNS ——
option domain-name "debian.intra";
option domain-name-servers serveur-debian.debian.intra;
default-lease-time 600;
max-lease-time 7200;
# !! — IMORTANT — ce serveur fait autorité !! —-
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# — définition des plages du serveur dhcp —
subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.10 192.168.1.20; # il donne les adresses de 10 à 20
        option routers 192.168.1.1; #adresse du serveur DHCP/DNS
        option domain-name-servers serveur-debian.debian.intra;
        option domain-name "debian.intra";
        #———- POUR LE PXE —————
        server-name "serveur-debian";#nom du serveur pxe
        next-server 192.168.1.1;#adresse du serveur tftpd
        filename "pxelinux.0";#fichier de boot pxe
}

Le serveur dhcp est configuré. Pour tester votre configuration vous pouvez tapez la commande

dhcpd3

il vous mettra un message si une erreur s’est faufilée dans votre fichier

2. Serveur tftp

On récupère le paquet tftpd-hpa

Il existe plusieurs serveurs tftpd, mais seul tftpd-hpa m’a permis de mettre en place ce serveur
Pour le récupérer, vous devez ajouter une ligne apt dans le fichier /etc/apt/sources.list :

deb http://ftp.de.debian.org/debian lenny main

N’bouliez de faire un aptitude update apres la mise a jour du fichier !

Récupération du serveur

aptitude install tftpd-hpa

Une fois les packets récupérés, il faut modifier 2 fichiers:

  • Le fichier /etc/inetd.conf et commenter la ligne de tftpd
    #tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/i n.tftpd -s /var/lib/tftpboot
  • Le fichier /etc/default/tftpd-hpa qui contient le configuration ( basique ) de tftpd.
    #Defaults for tftpd-hpa
    RUN_DAEMON="yes"
    OPTIONS="-l -s /tftpboot"

    Dans cet exemple, le repertoire qui cointiendra nos fichiers de boot est /tftpboot

3. Serveur PXE

On récupère le paquet :

aptitude install pxe

On configure PXE grace au fichier /etc/pxe.conf
Seules quelques lignes sont à modifier:
Les 2 premières, pour définir l’interface réseau à utiliser

 1 # which interface to use
  2 interface=eth1
  3 default_address=192.168.1.1

La ligne 33 , contient le repertoire pour pxe

32 # tftpd base dir
 33 tftpdbase=/tftpboot

Voilà, nous avons configurés les serveurs… maintenant il faut mettre en place les fichiers boot.

4. Configuration générale

Le serveur va installer les clients du réseaux à partir de fichier de configuration.
Le fichier de boot principal est pxelinux.0 ( que l’on a définit dans le dhcpd.conf )
Puis il y a le répertoire pxelinux.cfg , qui contiend le fichier default pour les paramètres élémentaires de boot.
L’arborescence est la suivante :

/tftpboot/
— pxelinux.0

boot-screens/
— menu.cfg
— splash.png
— vesamenu.c32
debian-lenny/
— inux
— initrd.gz
openSuse/
— linux
— initrd
pxelinux.cfg/
— default

Le fichier pxelinux.0 peut se télécharger ici
Le fichier /tftpboot/pxelinux.cfg/default est le fichier lu au démarrage du client sur le réseau.
Dans ce fichier, nous allons appeler le fichier /tftpboot/boot-screens/menu.cfg qui a la configuration du menu de choix de l’installation
Un exemple de fichier default:

include /boot-screens/menu.cfg
default /boot-screens/vesamenu.c32
prompt 0
timeout 0

Une exemple de fichier /ftptboot/boot-sreens/menu.cfg :

menu hshift 13
menu width 49
menu vshift 12
menu title Installer Menu
menu background boot-screens/splash.png

menu tabmsg Press ENTER to boot or TAB to edit a menu entry
menu autoboot Starting Local System in # seconds

prompt 0

label bootlocal
        menu label ^Boot from local disk
                localboot 0
                timeout 200
                localtimeout 200
        DEFAULT debian
        menu begin debian
                menu title Debian
                DEFAULT Debian Lenny
                label mainmenu
                        menu label ^Back…
                        menu exit
                menu title Debian Lenny
                menu begin debian-lenny-i386
                        menu title Debian Lenny i386
                                label mainmenu
                                menu label ^Back…
                        menu exit
                        DEFAULT install
                        LABEL install
                        menu label ^Install
                                menu default
                                kernel debian-lenny/linux
                                append  initrd=debian-lenny/initrd.gz vga=normal —
                        menu end
         menu end
 

5. Debian

5a. Fichiers d’installation

Les fichiers linux et initrd.gz sont spécifiques à la distribution et au type de machine ( x86, x64 , etc … ).
Ils se mettent dans le repertoire /tftpboot/typeOS/.
Pour debian lenny, vous pouvez récupérer ses fichiers version x86 :
linux
initrd.gz
Les mettre dans /tftpboot/debian-lenny/
Vous pouvez maintenant tester votre configuration ! Demarrez sur le reseau avec une machine cliente, vous devriez avoir le menu d’installation qui s’affiche !

Affichage du menu créé par menu.cfg

Affichage du menu créé par menu.cfg

Si tout marche, il faut maintenant ne pas avoir à refaire l’installation de A à Z. On peut définir une installation totalement automatisée ( partitionnement, utilisateurs , packets à installer ) grâce au fichier preseed.cfg.

5b. Installation sans assistance

Ce fichier sera appelé au démarrage de l’installation grace au mot-clé preseed/url dans le ficheir précédent ( /tftpboot/boot-screens/menu.cfg)

On remplace cette ligne

append  initrd=debian-lenny/initrd.gz vga=normal —

par cette ligne

append  auto=true priority=critical initrd=debian-lenny/initrd.gz languagechooser/language-name=French countrychooser/shortlist=fr_FR console-keymaps-at/keymaps=fr-latin9  vga=normal preseed/url=http://192.168.1.1/INSTALLATION/preseed.cfg —

Les mots-clés « languagechooser/langue-name », « countrychooser/shortlist », « console-keympas-at/keymaps » servent à définir la langue et le type de clavier du menu d’installation de debian

Le fichier preseed.cfg doit etre accessible par http, il faut donc installer le packet apache2 , et mettre le fichier preseed dans le repertoire /var/www/INSTALLATION/

Un exemple de fichier preseed.cfg qui:
– FORMATE tout le disque
– crée un compte utilisateur test ( mot de passe : password, mot de passe root: password)
– installe debian par défaut ( sans interface graphique)
– ajoute ssh-server comme paquet à installer
est disponible ici

6. OpenSuse

Meme pricincipe que pour debian pour installer openSuse en mode normal.

6a. Fichiers d’installation

Pour openSuse 11.1,vous pouvez récupérer ses fichiers version x86 :
linux
initrd
il faut juste rajouter une nouvelle entrée dans notre menu.cfg

    menu begin Opensuse
                         menu title Opensuse11
                                 label ^Suse
                                 kernel openSuse/i386/linux
                                 append initrd=openSuse/initrd splash=silent vga=0x314 showopts install=http://download.opensuse.org/distribution/11.1/repo/oss/
                 menu end

 

Ce qui permet d’avoir le menu classique d’installation. Maintenant nous allons nous intéresser à l’installation sans assistante.

6b. Installation sans assistance

L’installation sans assistance de openSuse se fait grâce au fichier suse.xml.
Ce fichier permet de définir, comme le ficheir preseed.cfg de debian, le partitionnement, les utilisateurs , etc.
Pour pouvoir faire appel au fichier suse.xml, il faut modifier le fichier menu.cfg, et modifier la ligne

                                append initrd=openSuse/initrd splash=silent vga=0x314 showopts install=http://download.opensuse.org/distribution/11.1/repo/oss/

par

    append initrd=openSuse/i386/initrd splash=silent vga=0x314 showopts install=http://download.opensuse.org/distribution/11.1/repo/oss/ autoyast=http://192.168.1.1/INSTALLATION/suse.xml

On ajout le mot-clé autoyast, qui définit le fichier de configuration automatique. Pour pouvoir y accéder, il est nécessaire d’installer apache2 sur notre serveur de déploiement (comme pour debian).

2 commentaires pour le moment

Ajoutez votre commentaire
  1. Bonjour,
    Tout d’abord merci pour la qualité de ce document.
    J’ai réussi avec mes petits doigts boudinés à monter mon serveur.
    Cependant, je ne sais pas trop pourquoi, aprés le chargement de l’initrd…et le défilé de lignes, j’obtiens un écran noir et plus rien ne se passe.
    Une piste, une route ou encore un cerveau correctement équipé seraient les bienvenus.
    Merci
    Cordialement

  2. Euh !!!!!
    En fait j’ai des gros doigts et un petit clavier…
    J’ai fait une faute de frappe…
    Tout fonctionne…..
    Laurent

%d blogueurs aiment cette page :