A la vue du titre vous savez que quoi on va parler ici . Nous l'avions vu ici cela fait un peu moins d'un an déjà (que ca passe vite) comment installer une debian en PXE.
Cette fois-ci on ira plus loin en faisant une installation automatique. Je sais pas si vous êtes un habitué sur ce blog mais en général les billets on un lien entre eux.
Cela fait quelques jours j'ai écris un billet afin de créer un miroir debian en local eh wiiii lui aussi nous servira.
Avant de commencer
Créer un fichier nommer preseed.cfg
- /*
- cd /root/
- vim preseed.cfg
- # Locales
- d-i debian-installer/fallbacklocale select fr_FR.UTF-8
- d-i debian-installer/locale select fr_FR.UTF-8
- # Clavier
- d-i console-keymaps-at/keymap select fr-latin9
- d-i debian-installer/keymap string fr-latin9
- #Réseau
- d-i netcfg/choose_interface select auto
- d-i netcfg/get_hostname string new-host
- d-i netcfg/get_domain string madinina.lan
- #Notre miroir que l'on a crée
- d-i mirror/protocol string http
- d-i mirror/http/hostname string ftp-01.madinina.lan
- d-i mirror/http/directory string /debian
- d-i mirror/http/proxy string
- #d-i mirror/suite string lenny
- #Configuration dhcp
- d-i netcfg/dhcp_timeout string 60
- d-i netcfg/disable_dhcp boolean no
- #NTP
- d-i clock-setup/utc boolean true
- d-i clock-setup/ntp boolean true
- d-i clock-setup/utc boolean true
- #Time-zone
- d-i time/zone string Europe/Paris
- d-i apt-setup/services-select multiselect security
- #d-i apt-setup/security_host string security.debian.org
- #Partitionnement dans notre cas tout sera dans /
- d-i partman-auto/method string regular
- d-i partman-auto/choose_recipe select atomic
- d-i partman/confirm_write_new_label boolean true
- d-i partman/choose_partition select finish
- d-i partman/confirm boolean true
- #Configuration des users
- d-i passwd/root-password password root
- d-i passwd/root-password-again password root
- d-i passwd/user-fullname string mickael
- d-i passwd/username string mickael
- d-i passwd/user-password password root
- d-i passwd/user-password-again password root
- #Ne pas envoyer les rapport de popularity
- popularity-contest popularity-contest/participate boolean false
- tasksel tasksel/first multiselect standard
- #Installation de grub
- d-i grub-installer/only_debian boolean true
- #Reboot
- d-i finish-install/reboot_in_progress note
- */
Afin de vérifier votre fichier il faut lancer
- /*
- debconf-set-selections -c preseed.cfg
- */
Maintenant que le gros du travail est effectué, il faut intégrer notre fichier preseed.cfg à notre initrd.gz
- /*
- cd /root/
- cp /var/lib/tftpboot/debian/lenny/i386/debian-installer/i386/initrd.gz . #Ne pas oublier le "." à la fin
- mkdir init
- cd init
- gunzip -dc /root/initrd.gz |cpio -id --no-absolute-filenames
- cp /root/preseed.cfg init/
- find . |cpio -o -H newc |gzip > /var/lib/tftpboot/debian/lenny/i386/debian-installer/i386/initrd.gz
- */
Votre initrd.gz est preseeder
. Je vois déjà vos sourires vous allez pouvoir glander au boulot. Eh ben non, comme ca nous pouvons approfondir d'autres domaines .Vous êtes super content mais c'est pas encore finit. Notre installe auto fonctionne parfaitement mais quand je me connecte pour la première fois je dois encore installer ssh ou nginx et bla bla bla en fonctione de vos besoins. J'ai pas envie de devoir taper apt-get install mon_paquet.
Disons sur nous voulons installer ssh pendant notre installe.
- /*
- debconf-get-selections |grep ssh
- openssh-server ssh/vulnerable_host_keys note
- openssh-server ssh/new_config boolean true
- openssh-server ssh/use_old_init_script boolean true
- openssh-server ssh/encrypted_host_key_but_no_keygen note
- openssh-server ssh/disable_cr_auth boolean false
- */
debconf-get-selections : Permet de connaitre la configuration à intégrer au fichier preseed.cfg
Si la commande debconf-get-selections n'existe pas il faut installer debconf-utils.
Petit bug : Si vous utilisez un miroir perso comme moi il faut utiliser le protocole ftp au lieu du http . Le fait d'utiliser le http casse l'auto installe
- /*
- #Notre miroir que l'on a crée
- d-i mirror/protocol string ftp
- d-i mirror/ftp/hostname string ftp-01.madinina.lan
- d-i mirror/ftp/directory string /debian
- d-i mirror/ftp/proxy string
- */
C'est l'heure de la clope
Liens utiles :
http://www.hps.com/~tpg/notebook/autoinstall.php
http://www.debian.org/releases/squeeze/example-preseed.txt