Preseed pour debian

Preseed est un mécanisme qui permet d’appliquer des paramètres sans interaction utilisateur lors de l’installation debian / ubuntu.

C’est hautement personnalisable, simple à intégrer. D’autres lui préfèrent kickstart, plus récent.

Cet article devrait être lu comme une suite à celui-ci.

Nous allons voir comment le faire en réseau, toutefois ceci peut être adapté pour créer votre média d’installation personnalisé, à destination d’un CDROM ou d’une clé USB.

Pré-requis :

  • un serveur DHCP pour servir des adresses et des noms d’hôtes
  • un serveur TFTP pour servir le(s) fichier(s) preseed
  • un accès à internet

Preseed repose sur un simple fichier texte, appelé par l’installeur debian. On y inscrit les réponses voulues aux questions posées par l’installeur. Les fichiers preseed peuvent être téléchargés en TFTP ou HTTP. Dans un souci d’optimisation et de simplicité, on verra la méthode TFTP.

En voiture Simone !

Dans la racine TFTP, on crée un dossier où nous placerons nos fichiers preseed :

# mkdir /srv/tftp/preseed

Créez vôtre fichier :

# vi /srv/tftp/preseed/debian-desktop.cfg

Nommez vos fichiers en rapport avec leur contenu.

Voici des paramètres à qui fonctionnent pour une installation debian 99% automatique.

d-i debian-installer/locale string fr_FR.UTF-8
d-i     keyboard-configuration/xkb-keymap                  select fr
d-i     keyboard-configuration/layoutcode                  string fr
d-i    console-keymaps-at/keymap                          select fr
d-i keymap skip-config

Ce paramètre est directement affecté par la commande de démarrage EXTLINUX :

d-i netcfg/choose_interface select auto

Si votre DHCP sert un bail à la machine installée avec la directive "option host-name" renseignée, la machine se nommera d’elle même avec ces deux paramètres :

d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain

Si vous voulez forcer vous même un hostname, commentez "d-i netcfg/get_hostname" et "d-i netcfg/get_domain" et dé-commentez la ligne qui suit :

# d-i netcfg/hostname string XXX

Mise en place d’un mirroir :

d-i mirror/country string manual
d-i mirror/http/hostname string ftp.fr.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

Pour créer ce mot de passe, utilisez "mkpasswd -5"
d-i passwd/root-password-crypted password $1$vznxkKOA$rrMVIDhgiS9GCuvhOffdG1

Pour créer un compte utilisateur :

d-i passwd/user-fullname string Nom complet de l'utilisateur
d-i passwd/username string nom_du_compte
d-i passwd/user-password-crypted password $1$vznvkKOA$rrMVIDhgiS9GCuvhOffdG1

Pour que votre utilisateur appartienne aux groupes adm, cdrom, dip, plugdev, lpadmin, sambashare, audio et video :
d-i passwd/user-default-groups string adm cdrom dip plugdev lpadmin sambashare audio video

Pour paramétrer l’horloge en UTC
d-i clock-setup/utc boolean true

Utiliser le fuseau horaire de Paris
d-i time/zone string Europe/Paris

Pour utiliser le NTP durant l’installation
d-i clock-setup/ntp boolean true
Le serveur NTP à utiliser
d-i clock-setup/ntp-server string ntp.midway.ovh

Partitionnement :

ATTENTION : ce qui qui suit n’est PAS compatible avec un dual-boot, ceci n’est utilisable que pour un seul OS sur le PREMIER disque. Par ailleurs, le disque cible d’installation dans cet exemple est /dev/sda, et rien d’autre !

Disque cible = /dev/sda, types de partitions usuelles, retirer les volumes LVM, retirer les volumes RAID, / = 8GB, SWAP = 2GB, le reste du disque pour /home, confirmations.

d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/expert_recipe string                         \
     root-home ::                                            \
             8192 100 8192 ext4                              \
                     $primary{ } $bootable{ }                \
                     method{ format } format{ }              \
                     use_filesystem{ } filesystem{ ext4 }    \
                     mountpoint{ / }                         \
             .                                               \
             512 2048 100% linux-swap                        \
                     $primary{ }                             \
                     method{ swap } format{ }                \
             .                                               \
             1024 10000 1000000000 ext4                      \
                     $primary{ }                             \
                     method{ format } format{ }              \
                     use_filesystem{ } filesystem{ ext4 }    \
                     mountpoint{ /home }                     \
             .                                               \

d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

Configuration d’APT - à ajuster, décommenter pour vos besoins !

#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true

#d-i apt-setup/services-select multiselect security, updates
#d-i apt-setup/security_host string security.debian.org

Script popcon

popularity-contest popularity-contest/participate boolean false

Installation des utilitaires de base et d’un environnement de bureau debian :

tasksel tasksel/first multiselect standard, desktop

Installation manuelle de logiciels :

d-i pkgsel/include string openssh-server screen nmon ethtool tcpdump vim libdvdread4 pciutils htop iotop powertop

Maintenant, il faut démarrer une installation avec ces paramètres.
Si vous avez bien suivi le tutoriel cité plus haut, vous avez un fichier "/srv/tftp/pxe/boot-screens/menu.cfg". Éditez le, placez y des lignes comme celles-ci et adaptez à vos besoins :

                      LABEL installation debian desktop auto
                              kernel debian-jessie/amd64/linux
                              append vga=normal initrd=udebian-jessie/amd64/initrd.gz auto preseed/url=tftp://192.168.1.1/pxe/preseed/debian-desktop.cfg debian-installer/locale=fr_FR console-setup/ask_detect=false console-setup/layoutcode=fr keyboard-configuration/layoutcode=fr keyboard-configuration/variantcode=oss_latin9 keyboard-configuration/variant=French - French (alternative\, Latin-9 only)netcfg/get_hostname=unassigned-hostname netcfg/get_domain=unassigned-domain netcfg/choose_interface=eth0 --

Vous pouvez maintenant choisir dans votre menu PXE de démarrer sur "debian desktop auto".