Preseed moi

Publié le 25 février 2011 par Lmns972 @guestblog

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

  1. /*
  2. cd /root/
  3. vim preseed.cfg
  4. # Locales
  5. d-i debian-installer/fallbacklocale select fr_FR.UTF-8
  6. d-i debian-installer/locale select fr_FR.UTF-8
  7. # Clavier
  8. d-i console-keymaps-at/keymap select fr-latin9
  9. d-i debian-installer/keymap string fr-latin9
  10. #Réseau
  11. d-i netcfg/choose_interface select auto
  12. d-i netcfg/get_hostname string new-host
  13. d-i netcfg/get_domain string madinina.lan
  14. #Notre miroir que l'on a crée
  15. d-i mirror/protocol string http
  16. d-i mirror/http/hostname string ftp-01.madinina.lan
  17. d-i mirror/http/directory string /debian
  18. d-i mirror/http/proxy string
  19. #d-i mirror/suite string lenny
  20. #Configuration dhcp
  21. d-i netcfg/dhcp_timeout string 60
  22. d-i netcfg/disable_dhcp boolean no
  23. #NTP
  24. d-i clock-setup/utc boolean true
  25. d-i clock-setup/ntp boolean true
  26. d-i clock-setup/utc boolean true
  27. #Time-zone
  28. d-i time/zone string Europe/Paris
  29. d-i apt-setup/services-select multiselect security
  30. #d-i apt-setup/security_host string security.debian.org
  31. #Partitionnement dans notre cas tout sera dans /
  32. d-i partman-auto/method string regular
  33. d-i partman-auto/choose_recipe select atomic
  34. d-i partman/confirm_write_new_label boolean true
  35. d-i partman/choose_partition select finish
  36. d-i partman/confirm boolean true
  37. #Configuration des users
  38. d-i passwd/root-password password root
  39. d-i passwd/root-password-again password root
  40. d-i passwd/user-fullname string mickael
  41. d-i passwd/username string mickael
  42. d-i passwd/user-password password root
  43. d-i passwd/user-password-again password root
  44. #Ne pas envoyer les rapport de popularity
  45. popularity-contest popularity-contest/participate boolean false
  46. tasksel tasksel/first multiselect standard
  47. #Installation de grub
  48. d-i grub-installer/only_debian boolean true
  49. #Reboot
  50. d-i finish-install/reboot_in_progress note
  51. */

Afin de vérifier votre fichier il faut lancer

  1. /*
  2. debconf-set-selections -c preseed.cfg
  3. */

Maintenant que le gros du travail est effectué, il faut intégrer notre fichier preseed.cfg à notre initrd.gz

  1. /*
  2. cd /root/
  3. cp /var/lib/tftpboot/debian/lenny/i386/debian-installer/i386/initrd.gz . #Ne pas oublier le "." à la fin
  4. mkdir init
  5. cd init
  6. gunzip -dc /root/initrd.gz |cpio -id --no-absolute-filenames
  7. cp /root/preseed.cfg init/
  8. find . |cpio -o -H newc |gzip > /var/lib/tftpboot/debian/lenny/i386/debian-installer/i386/initrd.gz
  9. */

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.

  1. /*
  2. debconf-get-selections |grep ssh
  3. openssh-server ssh/vulnerable_host_keys note
  4. openssh-server ssh/new_config boolean true
  5. openssh-server ssh/use_old_init_script boolean true
  6. openssh-server ssh/encrypted_host_key_but_no_keygen note
  7. openssh-server ssh/disable_cr_auth boolean false
  8. */

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

  1. /*
  2. #Notre miroir que l'on a crée
  3. d-i mirror/protocol string ftp
  4. d-i mirror/ftp/hostname string ftp-01.madinina.lan
  5. d-i mirror/ftp/directory string /debian
  6. d-i mirror/ftp/proxy string
  7. */

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