<!--
     The FreeBSD Documentation Project
     The FreeBSD French Documentation Project

     $Id: article.sgml,v 1.1 2002-04-27 20:07:11 gioria Exp $
     $FreeBSD$
     Original revision: 1.13
-->
<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;

<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN"> %authors;
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//FR"> %mailing-lists;
]>

<article>
  <articleinfo>
    <title>FreeBSD Jumpstart Guide</title>
    
    <authorgroup>
      <author>
        <firstname>Alfred</firstname>
        <surname>Perlstein</surname>
        
        <affiliation>
          <address><email>alfred@FreeBSD.org</email></address>
        </affiliation>
      </author>
    </authorgroup>
    
    <pubdate>$FreeBSD$</pubdate>
    
    <abstract>
      <para>Cet article décrit la méthode a utiliser pour installer 
      FreeBSD en utilisant la possibilité pour une machine de booter
       depuis le réseau via la fonction Intel PXE.
        </para>
    </abstract>
  </articleinfo>
  
  <sect1 id="introduction">
    <title>Introduction</title>

    <warning>
      <para>Cette procédure rend le <quote>Server</quote> non 
      sécurisé et dangereux, il est préférable de ne pas laisser 
      le <quote>Server</quote> accessible depuis d'autres machines que les 
      <quote>Clients</quote>.
    </warning>

    <para>Terminologie:</para>
    
    <informaltable frame="none">
      <tgroup cols="2">
        <tbody>
          <row>
            <entry>Server</entry>
            <entry>La machine qui offre le démarrage par le réseau et
	     les options d'installation.</entry>
          </row>
          
          <row>
            <entry>Client</entry>
            <entry>La machine sur laquelle va etre installé FreeBSD.</entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <para>Prérequis:</para>
    <para>
      Des Clients supportant l'option de démarrage par le réseau, 
      de type Intel PXE, et une connexion Ethernet.</para>
    
    <para>SVP, faites moi savoir si vous avez un problème ou des suggestions
    pour augmenter cette documentation.</para>

    <para>Si vous désirez expliquer ou implémenter une installation
    système spécifique, envoyez moi un email que nous en 
    discutions.</para>

    <para>Je voudrais aussi remercier  &a.ps; et &a.jhb; pour leur travail
    sur le pxeboot, l'interface au système Intel PXE (netboot).</para>
  </sect1>

  <sect1 id="server-config">
    <title>Configuration du Server</title>

    <procedure>
      <step>
        <para>Installez DHCP: vous pouvez ensuite utiliser ce fichier
	 <ulink url="http://people.FreeBSD.org/~alfred/pxe/dhcpd.conf">
          dhcpd.conf</ulink>, et le déposer dans /usr/local/etc/</para>
      </step>
      
      <step>
        <para>Activez tftp:</para>
	
        <procedure>
          <step>
            <para>Créez un répertoire
	     <filename>/usr/tftpboot</filename></para>
          </step>
            
          <step>
            <para>Ajoutez la ligne suivant au fichier 
              <filename>/etc/inetd.conf</filename>:</para>
	    
<programlisting>tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd    tftpd /usr/tftpboot</programlisting>
          </step>
        </procedure>
          
      </step>
        
      <step>
        <para>Activez NFS:</para>
	
        <procedure>
          <step>
            <para>Ajoutez la ligne suivante au fichier
	     <filename>/etc/rc.conf</filename>:</para>
	    <programlisting>nfs_server_enable="YES"</programlisting>
          </step>
            
          <step>
            <para>Ajoutez la ligne suivante au fichier
	     <filename>/etc/exports</filename>:</para>
	    <programlisting>/usr -alldirs -ro</programlisting>
          </step>
        </procedure>
      </step>
        
      <step>
        <para>Redémarrez pour activer ces nouveaux services ou 
	démarrez les manuellement.</para>
      </step>
    </procedure>
  </sect1>
  
  <sect1 id="bootstrap-config">
    <title>Configuration du Bootstrap</title>

    <procedure>
      <step>
        <para>Téléchargez les fichiers de démarrage: téléchargez 
	les images 
	 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/i386/kern.flp">
          kern.flp</ulink> et 
          <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/i386/mfsroot.flp"> 
          mfsroot.flp</ulink>.</para>
      </step>
      
      <step>
        <para>Configurez le répertoire tftp/pxe-boot:</para>
	
        <procedure>
          <step>
            <para>Déposez  pxeboot dans le répertoire de 
	    démarrage:</para>
	    
	    <screen>&prompt.root; <userinput>rm -rf /usr/obj/*</userinput>
&prompt.root; <userinput>cd /usr/src/sys/boot</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot</userinput></screen>
          </step>
          
          <step>
            <para>Utilisez le montage d'un pseudo périphérique pour
	     monter le fichier <filename>kern.flp</filename> et copiez
	      son contenu dans <filename>/usr/tftpboot</filename>:</para>
            
	    <screen>&prompt.root; <userinput>vnconfig vn0 kern.flp</userinput>    # association d'un fichier a un vndevice
&prompt.root; <userinput>mount /dev/vn0 /mnt</userinput>      # montage
&prompt.root; <userinput>cp -R /mnt /usr/tftpboot</userinput> # copie du contenu dans /usr/tftpboot
&prompt.root; <userinput>umount /mnt</userinput>              # démontage
&prompt.root; <userinput>vnconfig -u vn0</userinput>          # dé-association du vndevice au fichier</screen>
          </step>
        </procedure>
      </step>
      
      <step>
        <para>Compilez un noyau personnalisé pour les clients (particulièrement 
	pour éviter la configuration des périphériques au démarrage) et 
	déposez le dans le répertoire
          <filename>/usr/tftpboot</filename>.</para>
      </step>
      
      <step>
        <para>Créez un  <filename>loader.rc</filename> spécial et installez le dans 
	 <filename>/usr/tftpboot/boot/loader.rc</filename> comme cela il ne demandera
	 pas la deuxième disquette. Le mien se trouve
          <ulink url="http://people.FreeBSD.org/~alfred/pxe/loader.rc">
          ici</ulink>.</para>
      </step>
      
      <step>
        <para>Extrayez l'installeur et les utilitaires d'aide de la disquette mfsroot
	et décompressez les, puis déposez les dans <filename>/usr/tftpboot</filename>
          comme ceci:</para>

	<screen>&prompt.root; <userinput>vnconfig vn0 mfsroot.flp</userinput>         # assocication du fichier a un vndevice
&prompt.root; <userinput>mount /dev/vn0 /mnt</userinput>              # montage
&prompt.root; <userinput>cp /mnt/mfsroot.gz /usr/tftpboot</userinput> # copy du contenu dans /usr/tftpboot
&prompt.root; <userinput>umount /mnt</userinput>                      # démontage
&prompt.root; <userinput>vnconfig -u vn0</userinput>                  # dé-association du fichier au vndevice
&prompt.root; <userinput>cd /usr/tftpboot</userinput>                 # on se déplace dans le répertoire pxeboot
&prompt.root; <userinput>gunzip mfsroot.gz</userinput>                # on décompresse l'image  mfsroot</screen>
      </step>
      
      <step>
        <para>Créez votre propre script  sysinstall <filename>install.cfg</filename>, 
	vous pouvez utilisez  
          <ulink url="http://people.FreeBSD.org/~alfred/pxe/install.cfg">
          le mien</ulink> comme exemple, mais vous devez l'editer.</para>
      </step>
      
      <step> 
        <para>Copiez le script à l'endroit ou vous avez extrait et décompressé 
	l'image mfsroot:</para>
          
	<screen>&prompt.root; <userinput>cd /usr/tftpboot</userinput>
&prompt.root; <userinput>vnconfig vn0 mfsroot</userinput>
&prompt.root; <userinput>mount /dev/vn0 /mnt</userinput>
&prompt.root; <userinput>cp install.cfg /mnt</userinput>
&prompt.root; <userinput>umount /mnt</userinput>
&prompt.root; <userinput>vnconfig -u vn0</userinput></screen>
      </step>
    </procedure>
  </sect1>
  
  <sect1 id="install-setup">
    <title>Configuration de l'installation</title>
     
    <procedure>
      <step>
        <para>Déposez les fichiers d'installation dans un répertoire accessible 
	par NFS sur le serveur.  Créez un répertoire correspondant à la directive
	'nfs' du fichier <filename> install.cfg</filename> et copiez les fichiers
	d'installation de FreeBSD a cet endroit, cela devrait ressembler à quelque
	chose comme cela:</para>

	<screen>ABOUT.TXT       TROUBLE.TXT     compat20        floppies        ports
ERRATA.TXT      UPGRADE.TXT     compat21        games           proflibs
HARDWARE.TXT    XF86336         compat22        info            src
INSTALL.TXT     bin             compat3x        kern.flp
LAYOUT.TXT      catpages        crypto          manpages
README.TXT      cdrom.inf       dict            mfsroot.flp
RELNOTES.TXT    compat1x        doc             packages</screen>
      </step>
      
      <step>
        <para>Copiez les paquetages compressés dans le répertoire packages/All
	sous le répertoire <filename>nfs</filename>.</para>
      </step>
      
      <step>
        <para>Vérifiez la présence du fichier <filename>INDEX</filename> dans
	le répertoire des paquetages. Vous pouvez créer vos propres entrées comme 
	ceci:</para>

	<programlisting>alfred-1.0||/|Utilitaires d'installation d'Alfred||alfred@FreeBSD.org||||</programlisting>
      
        <para>Vous pouvez alors installer vos paquetages personnalisés, en particulier
	vos paquetages de post-installation.</para>
      </step>
    </procedure>
  </sect1>
  
  <sect1 id="custom-postinst-package">
    <title>Paquetages de post-installation</title>

    <para>Vous pouvez utiliser le script <filename>pkgmaker.sh</filename> pour
    créer votre propre paquetage de post-installation, l'idéee étant 
    de l'avoir installer et configuré avec les options spécifiques que vous voulez.
    <filename>pkgmaker</filename> se lance dans le répertoire au dessus du paquetage
    que vous voulez créer, en donnant uniquement le nom du paquetage(par ex mypkg)
    en argument, cela créera un mypkg.tgz a inclure dans le paquetage de sysinstall.</para>

    <para>Dans le répertoire de votre paquetage, vous devez créer un fichier
    nommé <filename>PLIST</filename> qui contient l'ensemble des fichiers
    que vous désirez installer et qui seront incorporés dans votre paquetage.</para>
      
    <para>Vous pouvez aussi créer des fichiers appelés <filename>pre</filename> et 
      <filename>post</filename> dans ce répertoire, ceux-ci sont des scripts qui seront 
      executés avant et après l'installation de votre paquetage.</para>
      
    <para>Si le  paquetage se trouve dans votre fichier <filename>install.cfg</filename> 
    il sera lancé et devra effectuer sa configuration finale pour vous.</para>
  </sect1>
</article>
