« Installation automatique Debian » : différence entre les versions

De Wiki doc

(Documentation initiale. À continuer.)
 
Aucun résumé des modifications
Ligne 9 : Ligne 9 :
=Préparation=
=Préparation=
==Contenu du fichier Preseed==
==Contenu du fichier Preseed==
Un fichier Preseed peut accepter un grand nombre de paramètres afin de personnaliser votre installation au plus proche de vos besoins. Je détaillerai surtout ce qui m'est utile (après tout c'est mon site hein ;D). Mes besoins lors de mes tests sont surtout une installation basique comportant massivement des "suivant, suivant, suivant, oui, oui , enter, entrer, entrer... terminer" avec en plus quelques outils préinstaller pour faciliter l'administration. Mais une fois que vous avez le concept en main ce n'est pas bien compliquer de couper le cordon avec mes explications.
Un fichier Preseed peut accepter un grand nombre de paramètres afin de personnaliser votre installation au plus proche de vos besoins. Je détaillerai surtout ce qui m'est utile (après tout c'est mon site hein ;D). Mes besoins lors de mes tests sont surtout une installation basique comportant massivement des "suivant, suivant, suivant, oui, oui , enter, entrer, entrer... terminer" avec en plus quelques outils préinstallés pour faciliter l'administration. Mais une fois que vous avez le concept en main ce n'est pas bien compliquer de couper le cordon avec mes explications.


Je vais principalement utiliser deux type d'installation :
Je vais principalement utiliser deux type d'installation :
Ligne 46 : Ligne 46 :
## Ici, l'utilisateur root
## Ici, l'utilisateur root
d-i passwd/root-password-crypted password $1$gS7ub6Es$mXmJM2Pcx81LfiFrskJrE1
d-i passwd/root-password-crypted password $1$gS7ub6Es$mXmJM2Pcx81LfiFrskJrE1
## Ici, l'utilisateur yohan
## Ici, l'utilisateur foo
d-i passwd/user-fullname string Yohan Charbi
d-i passwd/user-fullname string Foo Bar
d-i passwd/username string yohan
d-i passwd/username string foo
d-i passwd/user-password password charbi
d-i passwd/user-password password bar
d-i passwd/user-password-again password charbi
d-i passwd/user-password-again password bar
#d-i passwd/user-password-crypted $1$Ohff74uq$BE9PsuTxEgdUvU.HNpZiR1
#d-i passwd/user-password-crypted $1$Ohff74uq$BE9PsuTxEgdUvU.HNpZiR1


Ligne 112 : Ligne 112 :
</source>
</source>
===Fichier serveur===
===Fichier serveur===
<source lang="bash">
Le fichier serveur diffère peu. J'ai simplement retiré <source lang="bash" inline>desktop</source> dans la ligne <source lang="bash" inline> tasksel tasksel/first multiselect standard, desktop </source>
## Mettre le système en Français
d-i debian-installer/locale string fr_FR.UTF-8
d-i keyboard-configuration/xkb-keymap select fr(latin9)
d-i keyboard-configuration/layout string French
d-i keyboard-configuration/layoutcode string fr
#d-i console-keymaps-at/keymap select fr
d-i keymap skip-config
 
d-i netcfg/choose_interface select auto
 
## Définir le nom d'hôte.
## Avec les deux paramètres suivants, le nom d'hôte peut-être récupéré
## directement deuis le DHCP avec les directives "option host-name"
# d-i netcfg/get_hostname string unassigned-hostname
# d-i netcfg/get_domain string unassigned-domain
## Sinon utiliser  la linge suivante pour donner le que vous voulez
## Ici, la machine se nommera "Debian-auto"
d-i netcfg/hostname string Debian-auto
 
## Définir le miroir d'installation
## Si vous avez un miroir local, c'est ici qu'il faut donner son adresse
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
 
## Définir les mots de passes utilisateurs
## Ici, l'utilisateur root
d-i passwd/root-password-crypted password $1$gS7ub6Es$mXmJM2Pcx81LfiFrskJrE1
## Ici, l'utilisateur yohan
d-i passwd/user-fullname string Yohan Charbi
d-i passwd/username string yohan
d-i passwd/user-password password charbi
d-i passwd/user-password-again password charbi
#d-i passwd/user-password-crypted $1$Ohff74uq$BE9PsuTxEgdUvU.HNpZiR1
 
## Configurer la date et l'heure
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
## On peut utiliser le serveur NTP que l'on souhaite
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string 192.168.1.140
 
## Partitionnement du disque
## Ici, on ne se prend pas la tête, formatage du premier disque
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
 
## Définition du dépôt des mises à jours de sécurités
d-i apt-setup/services-select multiselect security
d-i apt-setup/security_host string security.debian.org
 
## Participation à l'étude statistique d'utilisation des paquets
## Désactivée
popularity-contest popularity-contest/participate boolean false
 
## Type d'installation
## Utilitaires usuels du systèmes
tasksel tasksel/first multiselect standard
 
## Installation d'utilitaires supplémentaires
d-i pkgsel/include string openssh-server vim htop tmux
 
#Installer GRUB sur /dev/sda sans poser question
d-i grub-installer/bootdev string /dev/sda
 
#Terminer l'installation sans poser de question
d-i finish-install/reboot_in_progress note
</source>
==Mise à disposition==
==Mise à disposition==
===Via le CD netinstall===
===Via le CD netinstall===
Pour utiliser un fichier preseed depuis un CD netinstall Debian, il faut appuyer sur <source lang="bash" inline><echap></source> au menu de choix d'action afin d'afficher une console et taper le commande suivante:
Pour utiliser un fichier Preseed depuis un CD netinstall Debian, il faut appuyer sur <source lang="bash" inline><echap></source> au menu de choix d'actions afin d'afficher une console et taper la commande suivante:
  auto url=http://IP_DU_SERVEUR/preseed.cfg
  auto url=http://IP_DU_SERVEUR/preseed.cfg
{{astuce|Vous pouvez choir d'utiliser le dépôt local du CD pour l'installation, ainsi, seul les fichiers absents de ce support seront pris d'Internet. Pour ce faire, il faut utiliser le paramètre suivant après les options de langue et de réseau:
{{astuce|Vous pouvez choisir d'utiliser le dépôt local du CD pour l'installation, ainsi, seul les fichiers absents de ce support seront pris sur le réseau. Pour ce faire, il faut utiliser le paramètre suivant après les options de langues et de réseaux:
<source lang="bash">d-i anna/choose_modules apt-cdrom-setup</source>}}
<source lang="bash">d-i anna/choose_modules apt-cdrom-setup</source>}}
===Via PXE===
===Via PXE===
Je part du principe que votre serveur PXE est déjà fonctionnel
Je part du principe que votre serveur PXE est déjà fonctionnel


{{info|Si vous utilisez un miroir de dépôt local, n'oubliez pas de rajouter la branche de l'installeur de Debian. Pour aptmirror, les lignes suivantes dans le fichier '''mirror.list''' sont à mettre pour les architectures <source lang="bash" inline>adm64</source> et <source lang="bash" inline>i386</source>:
<source lang="bash">
deb http://ftp.fr.debian.org/debian/ stretch main main/debian-installer contrib non-free
deb-i386 http://ftp.fr.debian.org/debian/ stretch main main/debian-installer contrib non-free
</source>}}


Note : Si vous utilisez un miroir de dépôt local, n'oubliez pas de rajouter la branche de l'installeur de Debian (Mettre les deux lignes à rajouter)
'''Création du répertoire de destination des fichiers'''
 
mkdir -p /srv/tftp/noyaux/stretch/debian-installer/
'''On se déplace dans notre répertoire de travail'''
cd /tmp
'''Télécharger le ''noyau'' et l'''initrd'' de l'installeur'''
wget http://ftp.fr.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz
'''Décompresser le tout'''
tar xvf netboot.tar.gz
'''Copie du noyau'''
cp /tmp/debian-installer/amd64/linux /srv/tftp/noyaux/stretch/debian-installer/
'''Copie de l'initrd'''
cp /tmp/debian-installer/amd64/initrd.gz /srv/tftp/noyaux/stretch/debian-installer/
'''Ajouter l'entrée correspondante dans le menu PXE'''
vim /srv/tftp/pxelinux.cfg/default
<source lang="bash">
LABEL Installation_Debian_auto
MENU LABEL Installer Debian 9
KERNEL http://192.168.180.180/noyaux/stretch/debian-installer/linux quiet
APPEND vga=normal initrd=http://192.168.180.180/noyaux/stretch/debian-installer/initrd.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical url=http://192.168.180.180/scripts/preseed/preseed.cfg DEBCONF_DEBUG=5 IPAPPEND 2
</source>
{{info|J'ai constaté que la présence de faux paramètres dans la section ''APPEND'' pouvaient empêcher le téléchargement du fichier Preseed donc si vous faites des copier/coller de certains sites et que ça ne fonctionne pas, penser à ça.}}


=Sources=
=Sources=
==Documentation officielle==
* https://www.debian.org/releases/stable/i386/apb.html
==Installation==
==Installation==
* https://wiki.debian.org/DebianInstaller/Preseed
* https://wiki.debian.org/DebianInstaller/Preseed

Version du 3 décembre 2017 à 21:44

L'installeur de Debian (et plus généralement de ses dérivés comme Ubuntu) permet l'automatisation complète. Il est ainsi possible de ce passer d'intervention Humaine pour mastériser une machine, ce qui permet de les faire à la chaîne ou d'en préparer une à des fins de tests sans rester comme un gland devant l'écran (de plus comme c'est automatique c'est largement plus rapide puisque les choix sont prédéfinis donc pas de questions chronophages).

Concepts

Afin de réaliser cette automatisation, Nous allons utiliser la méthode standard des distributions à base de Debian, à savoir Preseed. Il est également possible d'utiliser Kickstart, le système de Red Hat porté sur cette plateforme.

Un fichier Preseed est un bête document texte contenant les paramètres prédéfinit des différentes étapes de l'installation de Debian. Il peut-être utilisé directement depuis un CD netinstall ou entièrement par le réseau via PXE. La première solution à le mérite d'être portable (on peut emporter le fichier Preseed sur son PC et utiliser le serveur WEB de Busybox pour le partager à la machine que l'on veux installer) tandis que la méthode par le réseau est largement plus efficace pour une infrastructure sédentaire et permet le déploiement massif de machines (virtuelles ou non).

Préparation

Contenu du fichier Preseed

Un fichier Preseed peut accepter un grand nombre de paramètres afin de personnaliser votre installation au plus proche de vos besoins. Je détaillerai surtout ce qui m'est utile (après tout c'est mon site hein ;D). Mes besoins lors de mes tests sont surtout une installation basique comportant massivement des "suivant, suivant, suivant, oui, oui , enter, entrer, entrer... terminer" avec en plus quelques outils préinstallés pour faciliter l'administration. Mais une fois que vous avez le concept en main ce n'est pas bien compliquer de couper le cordon avec mes explications.

Je vais principalement utiliser deux type d'installation :

  • Une serveur
  • Une cliente

Voici le fichier que j'utilise pour chacune d'elles:

Fichier client

## Mettre le système en Français
d-i debian-installer/locale string fr_FR.UTF-8
d-i keyboard-configuration/xkb-keymap select fr(latin9)
d-i keyboard-configuration/layout string French
d-i keyboard-configuration/layoutcode string fr
#d-i console-keymaps-at/keymap select fr
d-i keymap skip-config

d-i netcfg/choose_interface select auto

## Définir le nom d'hôte.
## Avec les deux paramètres suivants, le nom d'hôte peut-être récupéré
## directement deuis le DHCP avec les directives "option host-name"
# d-i netcfg/get_hostname string unassigned-hostname
# d-i netcfg/get_domain string unassigned-domain
## Sinon utiliser  la linge suivante pour donner le que vous voulez
## Ici, la machine se nommera "Debian-auto"
d-i netcfg/hostname string Debian-auto

## Définir le miroir d'installation
## Si vous avez un miroir local, c'est ici qu'il faut donner son adresse
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

## Définir les mots de passes utilisateurs
## Ici, l'utilisateur root
d-i passwd/root-password-crypted password $1$gS7ub6Es$mXmJM2Pcx81LfiFrskJrE1
## Ici, l'utilisateur foo
d-i passwd/user-fullname string Foo Bar
d-i passwd/username string foo
d-i passwd/user-password password bar
d-i passwd/user-password-again password bar
#d-i passwd/user-password-crypted $1$Ohff74uq$BE9PsuTxEgdUvU.HNpZiR1

## Configurer la date et l'heure
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
## On peut utiliser le serveur NTP que l'on souhaite
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string 192.168.1.140

## Partitionnement du disque
## Ici, on ne se prend pas la tête, formatage du premier disque
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

## Définition du dépôt des mises à jours de sécurités
d-i apt-setup/services-select multiselect security
d-i apt-setup/security_host string security.debian.org

## Participation à l'étude statistique d'utilisation des paquets
## Désactivée
popularity-contest popularity-contest/participate boolean false

## Type d'installation
## Utilitaires usuels du systèmes + interface graphique
tasksel tasksel/first multiselect standard, desktop

## Installation d'utilitaires supplémentaires
d-i pkgsel/include string openssh-server vim htop tmux

#Installer GRUB sur /dev/sda sans poser question
d-i grub-installer/bootdev string /dev/sda

#Terminer l'installation sans poser de question
d-i finish-install/reboot_in_progress note

Fichier serveur

Le fichier serveur diffère peu. J'ai simplement retiré desktop dans la ligne tasksel tasksel/first multiselect standard, desktop

Mise à disposition

Via le CD netinstall

Pour utiliser un fichier Preseed depuis un CD netinstall Debian, il faut appuyer sur <echap> au menu de choix d'actions afin d'afficher une console et taper la commande suivante:

auto url=http://IP_DU_SERVEUR/preseed.cfg

ASTUCE

Vous pouvez choisir d'utiliser le dépôt local du CD pour l'installation, ainsi, seul les fichiers absents de ce support seront pris sur le réseau. Pour ce faire, il faut utiliser le paramètre suivant après les options de langues et de réseaux:
d-i anna/choose_modules apt-cdrom-setup

Via PXE

Je part du principe que votre serveur PXE est déjà fonctionnel

INFORMATION

Si vous utilisez un miroir de dépôt local, n'oubliez pas de rajouter la branche de l'installeur de Debian. Pour aptmirror, les lignes suivantes dans le fichier mirror.list sont à mettre pour les architectures adm64 et i386:
deb http://ftp.fr.debian.org/debian/ stretch main main/debian-installer contrib non-free
deb-i386 http://ftp.fr.debian.org/debian/ stretch main main/debian-installer contrib non-free

Création du répertoire de destination des fichiers

mkdir -p /srv/tftp/noyaux/stretch/debian-installer/

On se déplace dans notre répertoire de travail

cd /tmp

Télécharger le noyau et l'initrd de l'installeur

wget http://ftp.fr.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz

Décompresser le tout

tar xvf netboot.tar.gz

Copie du noyau

cp /tmp/debian-installer/amd64/linux /srv/tftp/noyaux/stretch/debian-installer/

Copie de l'initrd

cp /tmp/debian-installer/amd64/initrd.gz /srv/tftp/noyaux/stretch/debian-installer/

Ajouter l'entrée correspondante dans le menu PXE

vim /srv/tftp/pxelinux.cfg/default
LABEL Installation_Debian_auto
MENU LABEL Installer Debian 9
KERNEL http://192.168.180.180/noyaux/stretch/debian-installer/linux quiet
APPEND vga=normal initrd=http://192.168.180.180/noyaux/stretch/debian-installer/initrd.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical url=http://192.168.180.180/scripts/preseed/preseed.cfg DEBCONF_DEBUG=5 IPAPPEND 2

INFORMATION

J'ai constaté que la présence de faux paramètres dans la section APPEND pouvaient empêcher le téléchargement du fichier Preseed donc si vous faites des copier/coller de certains sites et que ça ne fonctionne pas, penser à ça.

Sources

Documentation officielle

Installation

Configuration

Francisation

Utilisateur

Grub