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

regularběžné rozdělení disku
lvmpoužití LVM
cryptopouž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í

atomicvšechny oblasti na jednom disku
homesamostatná oblast /home
multisamostatné 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.

+