Modifications entre les versions 7 et 8
Version 7 à la date du 2009-06-05 09:17:54
Taille: 4759
Éditeur: ThomasNoël
Commentaire: on va détailler un peu plus les options PXE pour l'install réseau d'Ubuntu
Version 8 à la date du 2009-06-05 09:40:17
Taille: 4648
Éditeur: ThomasNoël
Commentaire: +preseed
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was copied from PXE
Ligne 4: Ligne 3:
= PXE : Pre-Execution Environment = = Installation d'Ubuntu par le réseau (PXE) =
Ligne 6: Ligne 5:
PXE est un système de boot réseau, disponible sur quasiment toutes les machines modernes possédant une carte réseau Ethernet. Son fonctionnement est simple :
 * requête DHCP pour obtenir une adresse IP et un nom de fichier à charger
 * téléchargement d'une image PXE par TFTP (en général ''pxelinux.0'')
 * lancement de cette image

L'image ''pxelinux.0'', fournie le paquet `syslinux` permet de booter de manière sélective plusieurs systèmes (locales, ou distantes), notamment celles présentes sur le serveur TFTP. La configuration se situe dans le répertoire ''pxelinux.cfg/'' du serveur TFTP.

= Mise en place sur Debian Lenny =

Installer un serveur TFTP (`atftp`) et `syslinux` qui contient un code de démarrage PXE :
  {{{
# aptitude install atftpd syslinux
}}}

Vérifier l'existence du répertoire `/tftpboot` (le créer au besoin) ; y copier le fichier `pxelinux.0` :
  {{{
# mkdir /tftpboot
# cp -a /usr/lib/syslinux/pxelinux.0 /tftpboot/
}}}

Editer le fichier de configuration du serveur dhcp `/etc/dhcp/dhcpd.conf` en y ajoutant les options '''next-server''' et '''filename''', comme ici :
  {{{
# extrait de /etc/dhcp/dhcpd.conf, pour exemple :

authoritative;
default-lease-time 600;
max-lease-time 7200;
option domain-name "xx.auf.org";
option domain-name-servers ns.xx.auf.org;

subnet 192.168.1.0 netmask 255.255.255.0 {

   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.1.255;
   option routers gw.domain.net;
   range 192.168.1.100 192.168.1.200;

   # serveur TFTP qui propose l'image PXE
   next-server 192.168.1.1;
   # nom du fichier à charger en mémoire par les clients via TFTP
   filename "pxelinux.0";
}
}}}

Créer la configuration par défaut de pxelinux.0 dans l'arborescence TFTP, `/tftpboot/pxelinux.cfg/default` (si besoin, créer le répertoire `/tftpboot/pxelinux.cfg/`) :
  {{{
# exemple de configuation de pxelinux.0 par défaut
# extrait du fichier /tftpboot/pxelinux.cfg/default
# Documentation complète dans /usr/share/doc/syslinux/pxelinux.txt.gz
DEFAULT disque
PROMPT 1
TIMEOUT 0

# boot disque local
label disque
  localboot 0
  append -

# boot UDPcast
label udpcast
  kernel linux-udpcast
  append load_ramdisk=1 initrd=initrd-udpcast root=/dev/ram0 auto=yes lang=FR kbmap=FR netmodule=AUTO dhcp=yes enableDiskmodule=no diskmodparm= disk=/dev/sda compr=none netmodparm= port=9000 udpcparam=

# boot installateur Jaunty
label jaunty
  kernel ubuntu-installer-jaunty/i386/linux
  append vga=normal initrd=ubuntu-installer-jaunty/i386/initrd.gz --
}}}

Il faut évidemment disposer des fichiers kernel et initrd correspondant dans `/tfptboot`.

C'est tout...

= Applications classiques =

== Installateur réseau Debian/Ubuntu (netboot) ==
PXE est un système de boot réseau, disponible sur quasiment toutes les machines modernes possédant une carte réseau Ethernet. Nous parlons ici de son utilisation pour lancer l'installateur Ubuntu (ou Debian). Pour les détails sur PXE lui-même, voir la page [[PXE]].
Ligne 86: Ligne 10:
 * Pour Ubuntu Jaunty i386 : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz
 . (pour l'installateur graphique : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/gtk/netboot.tar.gz)
Ligne 87: Ligne 13:
 * Pour Ubuntu Jaunty i386 : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz  . (pour l'installateur graphique : http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/gtk/netboot.tar.gz)
Ligne 89: Ligne 15:
On prend ce qu'il faut dans le `netboot.tar.gz` et on le copie dans le `/tftpboot`. Par exemple pour Debian Lenny i386 : On prend ce qu'il faut dans le `netboot.tar.gz` et on le copie dans le `/tftpboot`. Par exemple pour Ubuntu Jaunty i386 :
Ligne 92: Ligne 18:
# wget http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz # wget http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz
Ligne 94: Ligne 20:
# mkdir /tftpboot/debian-installer-lenny
# mv /tmp/debian-installer/i386 /tftpboot/debian-installer-lenny/
# mkdir /tftpboot/debian-installer-jaunty
# mv /tmp/debian-installer/i386 /tftpboot/debian-installer-jaunty/
Ligne 100: Ligne 26:
# extrait de /tftpboot/pxelinux.cfg/default pour installeur Debian
label lenny
  kernel debian-installer-lenny/i386/linux
  append vga=normal initrd=debian-installer-lenny/i386/initrd.gz --
# extrait de /tftpboot/pxelinux.cfg/default pour installeur Ubuntu Jaunty
label jaunty
  kernel debian-installer-jaunty/i386/linux
  append vga=normal initrd=debian-installer-jaunty/i386/initrd.gz --
Ligne 106: Ligne 32:
== Lancement de UDPCast (duplication de machines) == Il faut alors démarrer l'ordinateur en mode PXE (voir dans le BIOS, ou bien taper sur les touches F2, F9 ou F10 au démarrage, selon la machine) et indiquer "jaunty" comme image PXE choisie. Le système lance alors l'installateur d'Ubuntu classique...
Ligne 108: Ligne 34:
Voir la page [[UDPCast]] = Installation totalement automatique =
Ligne 110: Ligne 36:
== Booter MSDOS en PXE (objectif : flasher un BIOS) == Il est possible d'envoyer des réponses par défaut à l'installateur d'Ubuntu (en fait à ''debian-installer''). Pour cela, il faut créer un fichier de ''preseed'' qui va contenir des codes de réponse et placer ce fichier sur un site Web. Puis il faut créer une rubrique spécifique dans `pxelinux.cfg/default` où l'on envoie les paramètres à l'installateur :
Ligne 112: Ligne 38:
Copier l'image de la disquette dans `/tftpboot`. Vous trouverez de nombreuses images sur http://www.veder.com/nwdsk/ (l'image la plus classique est `msubcd.img`).

Pour démarrage une disquette, utiliser le système `memdisk` fourni avec `syslinux` :
  {{{
# cp /usr/lib/syslinux/memdisk /tftpboot
 {{{
# extrait de /tftpboot/pxelinux.cfg/default
label autojaunty
        kernel ubuntu-installer-jaunty-gtk/i386/linux
        append video=vesa:ywrap,mtrr vga=788 initrd=ubuntu-installer-jaunty-gtk/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface=eth0 netcfg/get_hostname= url=http://install.refer.sn/preseed/jaunty --
Ligne 119: Ligne 45:
Ajouter une section dans le fichier `pxelinux.cfg/default` :
  {{{
# extrait de /tftpboot/pxelinux.cfg/default
LABEL dos
 kernel memdisk/memdisk
 append initrd=memdisk/msubcd.img
}}}
Dans cet exemple :
 * le fichier de ''preseed'' est sur `http://install.refer.sn/preseed/jaunty`. Le voici en fichier attaché : [[attachment:preseed-jaunty.txt]]
 * pour que le système d'installation puisse accéder à ce fichier, il faut que le réseau soit déjà actif. On ajoute donc directement ici les premières réponses aux questions de l'installateur, jusqu'à l'activation du réseau (on passe en français, clavier français, réseau sur eth0)
 * on utilise l'installateur graphique (ubuntu-installer-jaunty-gtk) pour faire "joli", mais c'est en fait totalement inutile, c'est juste pour frimer

/!\ '''Attention''', avec cette configuration et le fichier ''preseed'' proposé, lorsqu'on choisi ''autojaunty'' au démarrage PXE, '''la machine est totalement remise à zéro, sans aucune demande de confirmation''', aucune question, rien !!

Idéalement, vous devez adapter le fichier ''preseed'' à votre environnement. Pour cela, faites comme moi, lisez :
 * la doc Ubuntu sur le sujet : https://help.ubuntu.com/9.04/installation-guide/i386/preseed-using.html
 * Quelques notes sur Ubuntu-fr : http://doc.ubuntu-fr.org/netboot#configurer_les_fichiers_preseed
 * ''La'' documentation d'origine, celle de debian-installer : http://d-i.alioth.debian.org/manual/fr.i386/apb.html

A Dakar, nous avons passé presque deux jours avant de trouver tous les paramètres qui nous convenait. Mais désormais, l'installation d'une machine Ubuntu ne prend que 10 secondes de temps : booter la machine en PXE, choisir ''autojaunty'', et... aller faire autre chose !

= Voir aussi =

 * [[PXE]] en général
 * [[UDPCast]] pour la duplication des machines installées

Installation d'Ubuntu par le réseau (PXE)

PXE est un système de boot réseau, disponible sur quasiment toutes les machines modernes possédant une carte réseau Ethernet. Nous parlons ici de son utilisation pour lancer l'installateur Ubuntu (ou Debian). Pour les détails sur PXE lui-même, voir la page PXE.

Le principe général est de récupérer le noyau (fichier en général appelé "linux") et le logiciel d'installation compris dans un disque d'initialisation initrd (init ram disk). Ces deux fichiers sont présents dans des archives nommées netboot.tar.gz :

Par exemple :

On prend ce qu'il faut dans le netboot.tar.gz et on le copie dans le /tftpboot. Par exemple pour Ubuntu Jaunty i386 :

  • # cd /tmp
    # wget http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz
    # tar zxf netboot.tar.gz
    # mkdir /tftpboot/debian-installer-jaunty
    # mv /tmp/debian-installer/i386 /tftpboot/debian-installer-jaunty/

Puis on indique les chemins au niveau de pxelinux.cfg/default :

  • # extrait de /tftpboot/pxelinux.cfg/default pour installeur Ubuntu Jaunty
    label jaunty
      kernel debian-installer-jaunty/i386/linux
      append vga=normal initrd=debian-installer-jaunty/i386/initrd.gz --

Il faut alors démarrer l'ordinateur en mode PXE (voir dans le BIOS, ou bien taper sur les touches F2, F9 ou F10 au démarrage, selon la machine) et indiquer "jaunty" comme image PXE choisie. Le système lance alors l'installateur d'Ubuntu classique...

Installation totalement automatique

Il est possible d'envoyer des réponses par défaut à l'installateur d'Ubuntu (en fait à debian-installer). Pour cela, il faut créer un fichier de preseed qui va contenir des codes de réponse et placer ce fichier sur un site Web. Puis il faut créer une rubrique spécifique dans pxelinux.cfg/default où l'on envoie les paramètres à l'installateur :

  • # extrait de /tftpboot/pxelinux.cfg/default
    label autojaunty
            kernel ubuntu-installer-jaunty-gtk/i386/linux
            append video=vesa:ywrap,mtrr vga=788 initrd=ubuntu-installer-jaunty-gtk/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface=eth0 netcfg/get_hostname= url=http://install.refer.sn/preseed/jaunty --

Dans cet exemple :

  • le fichier de preseed est sur http://install.refer.sn/preseed/jaunty. Le voici en fichier attaché : preseed-jaunty.txt

  • pour que le système d'installation puisse accéder à ce fichier, il faut que le réseau soit déjà actif. On ajoute donc directement ici les premières réponses aux questions de l'installateur, jusqu'à l'activation du réseau (on passe en français, clavier français, réseau sur eth0)
  • on utilise l'installateur graphique (ubuntu-installer-jaunty-gtk) pour faire "joli", mais c'est en fait totalement inutile, c'est juste pour frimer

/!\ Attention, avec cette configuration et le fichier preseed proposé, lorsqu'on choisi autojaunty au démarrage PXE, la machine est totalement remise à zéro, sans aucune demande de confirmation, aucune question, rien !!

Idéalement, vous devez adapter le fichier preseed à votre environnement. Pour cela, faites comme moi, lisez :

A Dakar, nous avons passé presque deux jours avant de trouver tous les paramètres qui nous convenait. Mais désormais, l'installation d'une machine Ubuntu ne prend que 10 secondes de temps : booter la machine en PXE, choisir autojaunty, et... aller faire autre chose !

Voir aussi

  • PXE en général

  • UDPCast pour la duplication des machines installées

Ubuntu/PXE (dernière édition le 2010-09-29 14:57:52 par WillyManga)