Instalacja nienadzorowana Debian – automatyczna instalacja

Kiedyś jak zaczynałem swoją karierę w IT zdarzyło mi się często że musiałem instalować X komputerów z takimi samymi ustawieniami, no z wyjątkiem klucza licencji i nazwy komputera. Wykorzystywałem wtedy instalację nienadzorowaną, aby instalator z pliku odczytał sobie odpowiedzi. Skracając czas potrzebny na instalacje Windowsa miałem więcej czasu dla siebie. Jednak powodem było co innego, jak każdy administrator jestem leniwy, skoro coś może za mnie to zrobić to po co ja mam to robić. Te czasy to Windows XP, teraz nawet nie wiem czy tak się da windowsa zainstalować. Od dłuższego czasu administruję tylko linux’ami. Ciekaw byłem czy taki sposób jest i na nie. Po krótkiej lekturze okazało się że tak. Dlatego postanowiłem opisać to, jak to wygląda na Debianie.

Tutaj wykorzystam program debconf-get-selections jest on w pakiecie debconf-utils. Jeśli mamy już gotową wersję systemu to można pominąć początek, jednak ja zaczynam od samego początku.
Pierwszym krokiem jest przygotowanie sobie systemu jaki potrzebujemy. Zatem ściągamy sobie odpowiednią płytkę instalacyjną, uruchamiamy instalator, odpowiadamy na pytania instalatora.
Opis instalacji pominę sobie, gdyż jest tego dużo w sieci, a jeszcze na dodatek sposobów jest dużo, jak i możliwych wyborów. No i najważniejsze nie jest to głównym wątkiem tego wpisu.
Drugi krok to to co dla nas jest najważniejsze, czyli generowanie pliku dla instalatora.
Jako root wykonujemy:

debconf-get-selections --installer > preseed.cfg
debconf-get-selections >> preseed.cfg


 

Teraz możemy edytować plik, dopisując odpowiednie komunikaty dla instalatora, lub zmieniając pewne dane.

Jak mamy przygotowany już plik możemy przejść do instalacji. Na dostarczenie pliku jest kilka sposobów: poprzez zasób fizyczny lub poprzez sieć np:


- if you're netbooting:
preseed/url=http://host/path/to/preseed.cfg
preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- if you're booting a remastered CD:
preseed/file=/cdrom/preseed.cfg
preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- if you're installing from USB media (put the preconfiguration file in the
toplevel directory of the USB stick):
preseed/file=/hd-media/preseed.cfg
preseed/file/checksum=5da499872becccfeda2c4872f9171c3d


 

W moim przypadku plik z odpowiedziami nazywa się pressed1.cfg, cdrom to urządzenie /dev/sdr1 a punkt montowania w systemie instalatora będzie /cdrom1
Ja akurat mam do dyspozycji dwa cdrom’y zatem w jednym dam instalator a w drugim plik. Jak tylko uruchomi mi się system instalatora wybieram tryb eksperta po czym naciskam na klawisz TAB.
Dopisuję ścieżkę tak jak to na poniższym screen’ie.

Teraz ENTER i zaczyna się proces instalacji. Najpierw muszę zainicjować CDROM’y wybierając „Detect and mount CDROM”, po czym przechodzę na drugą konsolę poprzez skrót klawiszowy CTRL+ALT+F2 i wykonuję:

mkdir /cdrom1
mount /dev/cdrom /cdrom1


 

Następnie przechodzimy do konsoli 1 poprzez CTRL+ALT+F1 i wybieramy „Load debconf preconfiguration file”

Następny enter i na większość pytań instalator ma już odpowiedz, jesli na jakieś nie znajdzie to nas się zapyta, np. hasło dla root’a, oczywiście można też zawrzeć w pliku poprzez dopisanie:


#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# or encrypted using an MD5 hash.
#d-i passwd/root-password-crypted password [MD5 hash]


 

Dla bezpieczeństwa zalecam nie stosować haseł lub jak potrzeba zastosować metodę MD5 hash.

Instalacja posiada także wiele innych możliwości, np. zakładanie konta użytkownika, ale co bardzo ważne możliwość uruchomiania skryptów przed instalacją i po instalacji. Jedyne ograniczenie to działanie w chroot, ale i tak dużo można wykonać.


#wykonanie skryptu przed instalacji
#d-i preseed/early_command string anna-install some-udeb
#wykonanie skryptu po instalacji
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh


 

Jak i wiele innych przydatnych komend,  nie będę tutaj przekopiowywał dokumentacji jak coś można zajrzeć na stronę:

https://www.debian.org/releases/stable/amd64/apbs04.html.en

 

Tyle teorii, a praktyka już gorsza. Automatyczny generator konfiguracji niepoprawnie ustawił partycjonowanie dysku, sieć i pewno jeszcze kilka innych rzeczy. Jednak jak poprawiłem plik zgodnie z wytycznymi co jak w dokumentacji wszystko działało bardzo dobrze.