Installation d'une Gepibox : Phase 1

L'installeur Gepibox est un ISO installant une Debian Lenny paramétrée pour fournir un service web Gepi.

Le dernier ISO proposé à la date où j'écris est :
http://wawadeb.crdp.ac-caen.fr/iso/installeur_debian_lenny_gepibox.iso et le MD5 correspondant à contrôler avant de graver.

En fin de boot, un script se lance :


******************************************************
* Script d'installation d'une Debian lenny pour GEPI *
******************************************************

Ce script est destiné à effectuer l'installation d'une Debian lenny par
extraction d'une archive et un peu de post-config.

Désirez-vous poursuivre? (o/n) 
________________________
ETAPE 1: PARTITIONNEMENT
________________________

Voici la liste des disques trouvés sur votre machine:

[    2.492167] hda: VMware Virtual IDE Hard Drive, ATA DISK drive

Dans le cas d'un HP Proliant ML350, avec RAID, le disque est habituellement
   /dev/cciss/c0d0
La fonction GET_DEFAULT_DISK devrait détecter cela correctement...

Sur quel disque souhaitez vous effectuer l'installation?
    (ex.: hda, hdb, hdc, hdd, sda, sdb, sdc, sdd)
Disque: [hda] 

En principe le disque proposé par défaut est le bon, appuyez simplement sur ENTREE pour poursuivre :


Pour l'installation de la distribution soit possible,au moins une partition
de type Linux (83) est indispensable.
Pour bien faire, il faudrait créer trois partitions
(plus si vous voulez y placer /tmp, /var,... ailleurs que dans la partition
racine):
   / : au moins 1Go
       (5-7Go si vous ne faites pas des partitions séparées pour /tmp, /var,...)
   swap : 500Mo à 1Go.
   /home : Ce qu'il reste.
La partition /home est destinée à accueillir les sauvegardes journalières de la
base MySQL de GEPI.
L'espace requis n'est pas énorme pour chaque sauvegarde, mais au bout d'une
année...
Cette partition pourra aussi accueillir une sauvegarde partimage de la partition
racine (pour restaurer rapidement le système en cas de pépin).

Appuyez sur ENTREE pour poursuivre...

Après ces explications, les partitions éventuellement présentes sont listées.
Dans l'exemple présent, il y avait déjà des partitions, j'ai quand même choisi pour la démonstration de supprimer toutes les partitions existantes et d'opter pour un partitionnement automatique :


Voici les partitions sur le disque /dev/hda:

Disk /dev/hda: 10.7 GB, 10737418240 bytes
15 heads, 63 sectors/track, 22192 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Disk identifier: 0x54067422

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       10335     4883256   83  Linux
/dev/hda2           10336       11369      488565   82  Linux swap / Solaris
/dev/hda3           11370       22192     5113867+  83  Linux

Je rappelle:
   / : au moins 1Go
       (5-7Go si vous ne faites pas des partitions séparées pour /tmp, /var,...)
   swap : 500Mo à 1Go.
   /home : Ce qu'il reste.

Appuyez sur ENTREE pour poursuivre...

Choix de repartitionner :


Souhaitez-vous modifier les partitions 
(pour par exemple redimensionner/créer une/des partitions)? (o/n) o

Choix du partitionnement automatique :


Il est possible d'effectuer un partitionnement automatique:
Toutes les partitions existantes seront supprimées sur hda.
Le partitionnement réalisé sera ensuite le suivant:
 /dev/hda1: pour le système monté en /
 /dev/hda2: pour le swap
 /dev/hda3: pour /home

Voulez-vous effectuer un partitionnement automatique? (o/n) o
Le disque choisi dispose de l'espace suivant: 10240 Mo

Voici le partitionnement proposé en mégaoctets pour les deux premières
partitions:
  /dev/hda1: 5000 Mo pour la racine
  /dev/hda2: 500 Mo pour le swap
Votre choix: [5000 500] 

Le partitionnement automatique s'effectue en lançant une suite de commandes fdisk sans chercher à connaitre les partitions préalablement existantes.
Pour que cela fonctionne, je commence donc par lancer des commandes destinées à supprimer les 4 partitions principales du disque.
Comme certaines n'existent pas, il s'affiche des erreurs, mais c'est sans conséquence.
Tout ce qui compte, c'est de repartir d'une table vierge pour insérer les trois partitions souhaitées: :


Lancement du repartitionnement...

Command (m for help): Partition number (1-4): 
Command (m for help): Partition number (1-4): 
Command (m for help): Selected partition 3

Command (m for help): 3: unknown command
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): No partition is defined yet!

Command (m for help): 4: unknown command
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): Command (m for help): Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (1-22192, default 1): Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-22192, default 22192): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (10336-22192, default 10336): Using default value 10336
Last cylinder or +size or +sizeM or +sizeK (10336-22192, default 22192): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First cylinder (11370-22192, default 11370): Using default value 11370
Last cylinder or +size or +sizeM or +sizeK (11370-22192, default 22192): Using default value 22192

Command (m for help): Partition number (1-4): 
Command (m for help): Partition number (1-4): Hex code (type L to list codes): Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): 
Disk /dev/hda: 10.7 GB, 10737418240 bytes
15 heads, 63 sectors/track, 22192 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Disk identifier: 0x54067422

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       10335     4883256   83  Linux
/dev/hda2           10336       11369      488565   82  Linux swap / Solaris
/dev/hda3           11370       22192     5113867+  83  Linux

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
Ne pas s'inquiéter pour les éventuels affichages d'erreur.
Le script a pu tenter de supprimer des partitions qui n'existaient pas.
Mais vous devez avoir obtenu sur la fin:
 hda: hda1 hda2 hda3
Syncing disks.

Peut-on poursuivre (1), ou faut-il corriger (2)? [1] 

Le partitionnement est effectué, on va maintenant passer au choix des points de montage :


_____________________________
ETAPE 2: CHOIX DES PARTITIONS
         2ème partie
_____________________________

La partition /dev/hda2 a été identifiée comme partition de SWAP.
Elle sera déclarée par la suite dans le /etc/fstab

Pour le bon fonctionnement du script (du désarchivage en fait), il est
indispensable de choisir maintenant la partition racine.
Vous pourrez ensuite choisir les partitions dont les points de montage sont
dans la racine.
De façon générale, il faut choisir les partitions en commençant par la racine,
puis en choisissant les partitions conteneur avant les partitions contenues.

Appuyez sur ENTREE pour poursuivre...

Recapitulatif: Voici les partitions sur le disque /dev/hda:

Disk /dev/hda: 10.7 GB, 10737418240 bytes
15 heads, 63 sectors/track, 22192 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Disk identifier: 0x54067422

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       10335     4883256   83  Linux
/dev/hda2           10336       11369      488565   82  Linux swap / Solaris
/dev/hda3           11370       22192     5113867+  83  Linux


Quelle partition souhaitez-vous utiliser?
     (ex.: hda1, hdc2,...)
Partition: [hda1] 

Quel point de montage souhaitez-vous pour hda1? [/] 

Cette partition devra-t-elle être formatée? (o/n) o

Peut-on poursuivre (1), ou faut-il corriger (2)? [1] 

Voulez-vous choisir une autre partition
pour un autre point de montage (o/n)? o

Recapitulatif: Voici les partitions sur le disque /dev/hda:

Disk /dev/hda: 10.7 GB, 10737418240 bytes
15 heads, 63 sectors/track, 22192 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Disk identifier: 0x54067422

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       10335     4883256   83  Linux
/dev/hda2           10336       11369      488565   82  Linux swap / Solaris
/dev/hda3           11370       22192     5113867+  83  Linux


Quelle partition souhaitez-vous utiliser?
     (ex.: hda1, hdc2,...)
Partition: [hda3] 

Quel point de montage souhaitez-vous pour hda3? [/home] 

Cette partition devra-t-elle être formatée? (o/n) o

Peut-on poursuivre (1), ou faut-il corriger (2)? [1] 

Il semble que toutes les partitions Linux du disque choisi soient affectées.
Si vous voulez choisir une autre partition, elle ne doit pas être de type Linux
ou elle n'est pas sur le même disque dur (et je n'ai pas prévu dans mon script
le choix d'un autre disque... le choix reste possible, mais sans affichage
préalable des partitions existantes).

Voulez-vous néanmoins choisir une autre partition
pour un autre point de montage (o/n)? [n] 

Formatage de la partition hda1

Etiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
305216 i-noeuds, 1220814 blocs
61040 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=1254096896
38 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8032 i-noeuds par groupe
Superblocs de secours stockés sur les blocs : 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Ecriture des tables d'i-noeuds :  0/38 1/38 2/38 3/38 4/38 5/38 6/38 7/38 8/38 9/3810/3811/3812/3813/3814/3815/3816/3817/3818/3819/3820/3821/3822/3823/3824/3825/3826/3827/3828/3829/3830/3831/3832/3833/3834/3835/3836/3837/38complété                        
Création du journal (32768 blocs) : complété
Ecriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Le système de fichiers sera automatiquement vérifié tous les 28 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

Formatage de la partition hda3

Etiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
320112 i-noeuds, 1277952 blocs
63923 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=1308622848
39 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8208 i-noeuds par groupe
Superblocs de secours stockés sur les blocs : 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Ecriture des tables d'i-noeuds :  0/39 1/39 2/39 3/39 4/39 5/39 6/39 7/39 8/39 9/3910/3911/3912/3913/3914/3915/3916/3917/3918/3919/3920/3921/3922/3923/3924/3925/3926/3927/3928/3929/3930/3931/3932/3933/3934/3935/3936/3937/3938/39complété                        
Création du journal (32768 blocs) : complété
Ecriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Le système de fichiers sera automatiquement vérifié tous les 31 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

Une fois le formatage effectué, on procède à l'installation par désarchivage :


_____________________
ETAPE 3: INSTALLATION
_____________________

Montage de la partition /dev/hda1 en /tmp/mnt/...


Montage de la partition /dev/hda3 en /tmp/mnt/home...


Appuyez sur ENTREE pour poursuivre...

Extraction des fichiers.
Attention: Cette opération est plutôt longue...

bin/
bin/bzexe
bin/sync
bin/netcat
bin/egrep
bin/nc
bin/zcmp
bin/fgrep
bin/sed
...
var/run/screen/
var/run/mysqld/
var/run/mysqld/mysqld.pid
var/run/apache2.pid
var/run/acpid.pid
var/opt/
var/tmp/
var/mail/

Création de plusieurs dossiers...


Appuyez sur ENTREE pour poursuivre...

Renseignement du fichier /etc/fstab

Setting up swapspace version 1, size = 500285 kB
no label, UUID=543de60e-e5d8-4b1a-b764-67705ff30acd

Création des liens vers les noyaux à la racine...


______________________________
ETAPE 4: CHARGEUR DE DEMARRAGE
______________________________

Mise en place du fr.ktl pour disposer du clavier fr dans LILO...

Mise en place du fichier de configuration de LILO...

Creation du fichier de configuration de GRUB

Installation de GRUB
Stopping the hotplug events dispatcher: udevd.
.udev/ already exists on the static /dev! (warning).
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)	/dev/hda

Saisie du mot de passe pour le compte root:

Après la saisie du mot de passe, on passe à quelques paramètres importants : nom DNS, paramétrage réseau,...


_____________________________________
ETAPE 5: PARAMETRAGES SUPPLEMENTAIRES
_____________________________________

Création du /root/.vimrc

Saisie de quelques paramètres pour le renseignement de fichiers de configuration
de la distribution.

Nom du poste: [gepibox] 

Vous allez devoir préciser le nom du domaine DNS de l'établissement.
Cela devrait être quelque chose comme:
   clg-tartempion-bernay.ac-rouen.fr
Pour l'envoi de mail, il est nécessaire que ce nom DNS soit accepté par
le serveur SMTP que vous préciserez plus loin.

Quel est le nom du domaine DNS? clg-tartemplume.ac-rouen.fr

Le domaine DNS va être corrigé en clg-tartemplume.ac-rouen.fr

Peut-on poursuivre (1) ou voulez-vous corriger (2) ? [1] 

Mise en place d'un .bashrc corrigé...

Mise en place d'un /etc/profile standard...
Voici la liste des interfaces détectées:

Interface:   eth0
Infos:       Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] 
Pilote:      pcnet32
Adresse MAC: 00:0c:29:e9:f5:5b


Quelle interface voulez-vous configurer? [eth0] 

Vous avez choisi l'interface 'eth0'

Peut-on poursuivre (1) ou voulez-vous corriger (2) ? [1] 

Voulez-vous effectuer une configuration réseau statique (1)
ou préférez-vous le configurer en client DHCP (2)?
Votre choix: 1

Pour le paramétrage IP, si vous vous trouvez sur le réseau pédagogique ou à la maison (pour un test), vous devez connaitre les paramètres appropriés et vous avez une certaine latitude.
En revanche, si le serveur est installé sur une DMZ publique ou privée du serveur Amon de l'établissement, vous devez utiliser les paramètres définis par l'équipe Réseaux comme indiqué dans le Livre Blanc.

Comme la mise en service de la Gepibox en DMZ nécessite un paramétrage au niveau du serveur Amon (cases à cocher et reconfigure), l'opération ne doit être que par un Technicien du Rectorat (Divinfo) (avant les choix politiques de la fin d'année scolaire 2008-2009, c'était les Animateurs de Secteurs qui effectuaient les installations Gepibox, mais le reconfigure sur Amon était assuré soit par un Technicien du Rectorat (Divinfo), soit par un membre de l'équipe Réseaux du Rectorat).

Une fois l'IP et le masque choisis, le script devrait calculer correctement le réseau et le broadcast si bien que les choix par défaut devraient convenir.


Adresse IP: [10.127.164.200] 172.21.56.130

Masque: [255.255.255.192] 

Réseau: [172.21.56.128] 

Broadcast: [172.21.56.191] 

Passerelle: [172.21.56.129] 

Serveur DNS: [172.21.56.129] 

Peut-on poursuivre (1) ou voulez-vous corriger (2) ? [1] 

Renseignement des fichiers de configuration réseau...

Si la gepibox se trouve sur une patte DMZ de l'Amon, il faut choisir l'Amon comme serveur Proxy.


Voulez-vous paramétrer un proxy pour votre installation? (o/n) o

Quel est l'IP ou le nom DNS du proxy? [172.21.56.129] 

Quel est le port du proxy? [3128] 

Renseignement du proxy dans /root/bin/param_proxy.sh

Renseignement du proxy dans /etc/profile

Renseignement du proxy dans /root/.subversion/servers

Pour se mettre à l'heure, le système est configuré pour rechercher un serveur de
temps sur internet (fr.pool.ntp.org).
Vous pouvez modifier le serveur à rechercher.
(si vous disposez d'un SLIS, il fait généralement serveur de temps).
Vous pouvez aussi désactiver cette mise à l'heure (surtout si vous n'avez pas
d'accès internet).

Voulez-vous activer la mise à l'heure? (o/n) o

Quel serveur de temps souhaitez-vous utiliser?
NTPSERVERS: [fr.pool.ntp.org] chronos.ac-rouen.fr

Renseignement du fichier /etc/default/ntpdate


Modification du fichier /etc/ntp.conf


Correction du /etc/apt/sources.list


Génération de clés pour le serveur SSH...
Generating public/private rsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
bb:43:7a:32:f2:50:36:38:6b:6f:7c:80:74:fd:70:6a root@gepibox
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|       .         |
|    ... o .      |
|   .oo+ S=       |
|    .=..E..      |
|    +. =.        |
|   ..o* +.       |
|     +o=..       |
+-----------------+
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
6c:eb:7a:20:04:a7:61:51:b6:0a:e8:bc:1e:a0:67:0d root@gepibox
The key's randomart image is:
+--[ DSA 1024]----+
|  .oo            |
|. +...           |
|o. =.            |
|o....  .         |
|.oE.    S        |
|o .o. .. .       |
|.oo .. ..        |
|.o.    ..        |
| .    .o.        |
+-----------------+

Des clés publiques sont présentes.
Vous pouvez ajouter ces clés à la liste des identités permettant de se connecter
à la station sans saisie du mot de passe root.
Si vous ignorez ce dont il s'agit, ou si vous n'êtes pas certain qu'il s'agit
bien de la clé publique d'une personne fiable, n'ajoutez aucune de ces clés.

Voici la liste des clés:
/digloo/cles_pub_ssh/boireaus.pub
/digloo/cles_pub_ssh/caquef.pub
/digloo/cles_pub_ssh/delamarf01.pub
/digloo/cles_pub_ssh/eltere.pub
/digloo/cles_pub_ssh/feronl.pub
/digloo/cles_pub_ssh/fmolle2.pub
/digloo/cles_pub_ssh/fmolle.pub
/digloo/cles_pub_ssh/lacourc2.pub
/digloo/cles_pub_ssh/lacourc.pub
/digloo/cles_pub_ssh/lbailly.pub
/digloo/cles_pub_ssh/liebherb.pub
/digloo/cles_pub_ssh/massonm.pub

Si vous souhaitez que je puisse assurer la maintenance de votre Gepibox, il est indispensable que vous ajoutiez ma clé publique :


Voulez-vous insérer une ou plusieurs de ces clés
dans votre fichier /root/.ssh/authorized_keys ? (o/n) o

Voulez-vous insérer /digloo/cles_pub_ssh/boireaus.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] o

Pour les autres clés, à vous de voir... :


Voulez-vous insérer /digloo/cles_pub_ssh/caquef.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/delamarf01.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/eltere.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/feronl.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/fmolle2.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/fmolle.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/lacourc2.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/lacourc.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/lbailly.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/liebherb.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Voulez-vous insérer /digloo/cles_pub_ssh/massonm.pub
dans votre fichier /root/.ssh/authorized_keys ? (o/n) [n] 

Pause... (taper sur Entrée)

Démontage des partitions...
Démontage de /home
Démontage de /

Certains démontages ont échoué, mais ce n'est pas dramatique.

L'installation du système est maintenant effectuée.

Pour achever l'installation de GEPI, rebooter sur la Debian installée et lancer
le script /root/gepi.sh

Appuyez sur ENTREE pour terminer.

A cette étape, il peut arriver que le démontage des partitions échoue.
Ce n'est pas grave.

Rebooter et extraire le CD.

Le système va booter sur la distribution installée et achever les paramétrages et la mise en service d'un Gepi.