Debian je jedna z distribucí, kde lze velmi snadno připravit automatickou instalaci bez nutnosti zásahu uživatele.
Úplný oficiální příklad, jak má vypadat konfigurační soubor i s popisem jednotlivých voleb můžete najít zde.
Příprava souboru
Vytvoříme soubor preseed.cfg
nano ~/pressed.cfg
Nejprve nastavíme na české lokální prostředí a českou klávesnici
# lokalni prostredi
d-i debian-installer/locale string cs_CZ
d-i keyboard-configuration/xkb-keymap select cz
d-i time/zone string Europe/Prague
Dále nastavení sítě. Je doporučeno ponechat defaultní nastavení
# Automatic network configuration is the default.
# If you prefer to configure the network manually, uncomment this line and
# the static network configuration below.
#d-i netcfg/disable_autoconfig boolean true
Ze základního nastavení zbývá hostname počítače
d-i netcfg/get_hostname string debian
Nastavení uživatelů
Zákaz root účtu
d-i passwd/root-login boolean false
Vytvoření uživatele.
d-i passwd/user-fullname string vmuser
d-i passwd/username string vmuser
Vytvoření nešifrovaného hesla
d-i passwd/user-password password hesl0
d-i passwd/user-password-again password hesl0
Šifrované heslo (Linux)
Když nechci mít v souboru uložené heslo v čitelném stavu. Je možné ho zákodovat pomocí crypt(3) hash. Pro šifrování budeme potřebovat debian balíček whois.
sudo apt install whois
Heslo vytvoříme příkazem
mkpasswd -m sha-512
Výsledek poté zapíšeme do souboru
d-i passwd/user-password-crypted password $6$dK0F/EFSR/$ZYGXLMML8jGXrSZXkMtpRu.z7e2UzFTRgkuwXQSHojCDvo2C7Ln9/6WTwuQlpKVAVYt/bKA0CUV/YL2T4tLuF1
Příprava disku
Příprava disku je nejsložitější část automatické instalace. Ujistěte se, že máte vybraný správný disk. Obvykle to bývá /dev/sda, jako v tomto příkladu
d-i partman-auto/disk string /dev/sda
Disk lze rozdělit několika způsoby. Nejprve je nutné vybrat metodu
regular | běžné rozdělení disku |
lvm | použití LVM |
crypto | použití šifrovaného LVM |
Vybranou metodu zapíšeme do souboru
d-i partman-auto/method string regular
Dalším krokem je výběr rozdělení oblastí
atomic | všechny oblasti na jednom disku |
home | samostatná oblast /home |
multi | samostatné oblasti /home /var /tmp |
Zápis do souboru
d-i partman-auto/choose_recipe select atomic
Potvrzení o rozdělení
# Confirm overwrite
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
Tasksel a uživatelské balíčky
Doporučené balíčky můžete nebo nemusíte instalovat
d-i base-installer/install-recommends boolean false
Je možné použít vlastní deb balíček s jádrem. Pokud ne, použijte příkaz
d-i base-installer/kernel/image string none
nastavení APT pro contrib a non-free software (mám zapnuto)
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
Výběr instalace Tasksel
tasksel tasksel/first multiselect standard, ssh-server
Je možnost nainstalovat vlastní vybrané balíčky
#d-i base-installer/kernel/image string sudo
Nastavení popularity-contest (zpětné vazby)
d-i popularity-contest popularity-contest/participate boolean false
Nastavení disku pro GRUB2 a nastavení jako jediného zavaděče
d-i grub-installer/bootdev string /dev/sda
d-i grub-installer/only_debian boolean true
Pokud je potřeba spustit nějaký skript po instalaci. V tomto případě připravíme uživatelský účet pro vzdálenou orchestraci pomocí Ansible
d-i preseed/late_command string echo "vmuser ALL=(ALL) NOPASSWD: ALL" > /target/etc/sudoers.d/90-vmuser
Dokončení a příprava k instalaci (Linux)
Instalační iso soubor lze stáhnout na oficální webové stránce s různých zdrojů.
Pro extrakci souboru potřebujeme debian balíček libarchive-tools
apt install libarchive-tools
Nyní soubory rozbalíme a přidáme náš preseed.cfg
mkdir isofiles
bsdtar -C isofiles -xf netinst.iso
chmod +w -R isofiles/install.amd/
gunzip isofiles/install.amd/initrd.gz
echo preseed.cfg | cpio -H newc -o -A -F isofiles/install.amd/initrd
gzip isofiles/install.amd/initrd
chmod -w -R isofiles/install.amd/
Pokud poté chceme bootovat přímo do instalace, použijeme
chmod +w -R isofiles/isolinux
sed -i 's/timeout 0/timeout 50/' isofiles/isolinux/isolinux.cfg
echo 'totaltimeout 100' >> isofiles/isolinux/isolinux.cfg
chmod -w -R isofiles/isolinux
Nyní Vytvoříme ISO soubor
genisoimage -o debian-custom-preseed.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat isofiles/
Nyní je ISO soubor připraven k dalšímu použití. Doporučuji ho nejprve vyzkoušet virtualním počítači.