Nejprve samozřejmě musíte vytvořit soubor s přednastavením a umístit
jej na vhodné místo, odkud jej budete používat. O vytvoření souboru se
dočtete dále v této příručce. Umístění souboru na vhodné místo je
různě složité podle použitého způsobu. V případě, že budete soubor
s přednastavením načítat ze sítě, z diskety nebo usb klíčenky, je jeho
umístění zřejmé. Chcete-li soubor umístit na CD nebo DVD, budete muset
znovu sestavit celý ISO obraz. Umístění souboru s přednastavením přímo
do initrd je mimo rozsah tohoto dokumentu a musíme vás odkázat na
vývojářskou dokumentaci k debian-installer
u.
Ukázkový soubor s přednastavením, jež můžete využít jako základ pro své pokusy, naleznete na ../example-preseed.txt. Tento soubor je poskládán z ukázek prezentovaných v tomto dodatku.
Používáte-li přednastavení z initrd, musíte zajistit, aby se soubor
jmenoval preseed.cfg
a aby se nacházel
v kořenovém adresáři initrd. O vše ostatní se postará instalační
program. Ten se podívá, zda je soubor přítomen, a pokud ano, tak jej
nahraje.
U zbývajících způsobů přednastavení musíte instalátoru říci, který
soubor má použít. Toho dosáhnete parametrem, který předáte jádru buď
ručně při zavádění, nebo skrze soubor zavaděče
(např. syslinux.cfg
), kde na konec řádku append
přidáte příslušné parametry.
Pokud to váš zavaděč umožňuje, nemusí být od věci jej nastavit tak,
aby nečekal se zavedením instalačního systému na stisk klávesy
Enter, ale aby dále pokračoval automaticky. V případě syslinuxu to
znamená nastavit v souboru syslinux.cfg
parametr
timeout
na hodnotu 1
.
Abyste měli jistotu, že instalátor dostane správný soubor, můžete zadat jeho kontrolní součet. V současnosti to musí být md5 součet. Pokud zadaný součet a vypočítaný součet souboru nebudou souhlasit, instalátor odmítne tento soubor použít.
Zaváděcí parametry: - pro zavádění ze sítě: preseed/url=http://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - pro zavádění z upraveného CD: preseed/file=/cdrom/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - pro zavádění z USB média (soubor s přednastavením je v kořenovém adresáři USB média): preseed/file=/hd-media/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
Pokud zadáte preseed/url
nebo preseed/file
jako zaváděcí parametr, můžete
použít zkrácenou verzi url
, resp.
file
.
I když nemůžete přednastavit některé kroky připravenými odpověďmi v souboru, stále můžete dosáhnout plně automatické instalace, protože můžete zadat hodnoty pro přednastavení jako zaváděcí parametry jádra. Zaváděcí parametry jádra můžete též využít v případě, kdy nechcete použít celé přednastavení, ale jen předodpovědět nějakou konkrétní otázku.
Pro nastavení hodnoty libovolné proměnné zmíněné v tomto dodatku stačí
zadat
. Jestliže
se má hodnota použít k přednastavení balíku v cílovém systému, musíte
předřadit ještě vlastníka[28] proměnné
cesta/k/proměnné
=hodnota
.
Nezadáte-li vlastníka, hodnota proměnné se nezkopíruje do databáze
debconfu v cílovém systému a tudíž zůstane při konfiguraci daného
balíku nevyužita.
vlastník
:cesta/k/proměnné
=hodnota
Předzodpovězení otázky popsaným způsobem způsobí, že se tato otázka nezobrazí. Chcete-li otázce přednastavit konkrétní odpověď, ale přesto chcete, aby se otázka zobrazila, použijte místo „=“ operátor „?=“. Více též B.5.2 – „Použití přednastavení pro změnu výchozích hodnot“.
Některé často používané proměnné mohou mít i kratší variantu, Pokud je
tato varianta dostupná, upřednostňujeme ji zde před úplnou formou.
Konkrétně proměnnou preseed/url
zde zkracujeme na
url
. Jiným příkladem je alias
tasks
, který vlastně znamená
tasksel:tasksel/first
.
Dvě pomlčky „--“ mají u zaváděcích parametrů jádra speciální význam. Všechny parametry nacházející se za posledními pomlčkami budou zkopírovány do konfigurace zavaděče v instalovaném systému. (Pokud to instalátor pro daný zavaděč umožňuje.) Parametry, které instalátor rozpozná (např. volby pro přednastavení), budou automaticky odfiltrovány.
Aktuální jádra (2.6.9 a novější) akceptují nejvýše 32 parametrů a 32 proměnných prostředí (včetně standardních voleb pro instalační program). Pokud tento limit překročíte, jádro zpanikaří. (Dřívější jádra měla tyto limity ještě menší.)
Pro většinu instalací můžete celkem bez problémů odstranit implicitní
volby jako vga=normal
, což vám umožní přidat
další volby pro přednastavení.
V některých případech není možné zadat hodnotu obsahující mezeru, a to i v případě, kdy hodnotu obklopíte uvozovkami.
Díky několika pokročilým (někteří říkají zmateným) vlastnostem instalačního systém Debianu je možné, aby se poměrně jednoduchý zaváděcí parametr rozvinul do komplexní a na míru upravené automatické instalace. Pro ilustraci uvádíme několik příkladů, které můžete zadat na zaváděcí výzvě.
auto url=autoserver
Toto spoléhá na fakt, že na síti existuje DHCP server, který dostane
počítač do bodu, kdy bude možné přes DNS přeložit jméno
autoserver
. Pokud DHCP server poskytnul i název
domény, tak se zkusí i varianta, kdy se za název počítače přidá právě
poskytnutá doména. Například pokud je přes DHCP poskytnuta doména
priklad.cz
, vyústí to ve stažení souboru s
přednastavením z adresy
http://autoserver.priklad.cz/d-i/squeeze/./preseed.cfg
.
Poslední část url (d-i/squeeze/./preseed.cfg
) pochází
z proměnné auto-install/defaultroot
. Proměnná
implicitně obsahuje adresář squeeze
, aby jste s
příchodem novějších verzí Debianu a nových kódových označení
nemigrovali na nové verze automaticky, ale kontrolovaněji (po
explicitním zadání nového kódového jména).
Část /./
indikuje kořen, vůči kterému můžete
zadávat relativní cesty (používá se v
preseed/include
a preseed/run
).
To umožňuje zadávat cesty k souborům jako kompletní URL, cesty
začínající na /
jsou připojeny ke kořenu, nebo jako
cesty relativní k umístění, kde byl nalezen poslední soubor s
přednastavením. To umožňuje vytvářet přenositelnější skripty, kde
můžete přesouvat celé hierarchie skriptů na nová umístění, aniž by se
co pokazilo. Například můžete na USB klíčenku přesunout soubory, které
se dříve používaly na webovém serveru. Předpokládejme, že je v souboru
s přednastavením nastavena proměnná preseed/run
na
hodnotu /scripts/late_command.sh
. Pak v naší ukázce
bude zmíněný soubor stažen z
http://autoserver.priklad.cz/d-i/squeeze/./scripts/late_command.sh
.
Pokud na dané síti není vybudovaná vhodná DHCP a DNS infrastruktura,
nebo pokud nechcete použít výchozí cestu k souboru
preseed.cfg
, můžete zadat explicitní
URL. Nebude-li URL obsahovat prvek /./
, bude
automaticky připojen na začátek cesty, tj. za třetí lomítko URL.
Příklad vyžadující jen minimální podporu od místní síťové
infrastruktury:
auto url=http://192.168.1.2/cesta/k/preseed.souboru
Celé to funguje tak, že
pokud v URL chybí protokol, předpokládá se http,
pokud název počítače neobsahuje tečky, připojí se k němu doména odvozená z DHCP a
pokud za názvem počítače není žádné lomítko, přidá se výchozí cesta.
Kromě zadávání URL můžete zadat i parametry, které přímo neovlivňují
chování debian-installer
u samotného, ale které mohou být předány do skriptů
spouštěných z nahraného souboru s přednastavením pomocí
preseed/run
. V současnosti to je pouze
auto-install/classes
, ve zkrácené verzi
classes
. Příklad použití:
auto url=autoserver
classes=trida_A;trida_B
Třídy mohou například označovat typ systému, který se má instalovat, nebo jazykové prostředí, které se má nastavit.
Tento koncept je možné dále rozšiřovat. Pokud toho ve svých skriptech
využijete, je rozumné použít jmenný prostor
auto-install
, například
auto-install/style
. Jestliže si myslíte, že máte
pro další parametr vhodné využití, zmiňte se o něm v diskusní skupině
<debian-boot@lists.debian.org>
, abychom předešli
konfliktům v jmenném prostoru (a případně vám přidali kratší alias).
Příkaz auto
zatím není definován všude. Stejného
výsledku však můžete dosáhnout přidáním dvou
parametrů auto=true priority=critical
k parametrům
jádra. Parametr auto
je vlastně alias pro
auto-install/enable
a potlačuje zobrazení otázek
ohledně místního prostředí a nastavení klávesnice až do bodu, kdy je
bude možné přednastavit. Parametr priority
je alias
pro debconf/priority
a nastavením na hodnotu
critical
zajistíte, aby se zobrazovaly pouze otázky
s kritickou prioritou, kterých při instalaci moc není.
Další parametry, které se mohou hodit při automatizaci instalací přes
DHCP, jsou interface=auto netcfg/dhcp_timeout=60
,
které způsobí, že se k instalaci použije první funkční síťové rozhraní
a že instalátor bude trpělivější při čekání na odpovědi od DHCP
serveru.
Rozsáhlý příklad použití této infrastruktury naleznete na webových stránkách autora. Kromě ukázkových skriptů a tříd tam také naleznete zajímavé výsledky kreativního použití přednastavení.
Při použití (automatického) přednastavení se mohou hodit následující
aliasy. Poznamenejme, že aliasy zkracují pouze jméno otázky. Vždy je
třeba přidat ještě hodnotu, například auto=true
nebo interface=eth0
.
auto | auto-install/enable |
classes | auto-install/classes |
fb | debian-installer/framebuffer |
language | debian-installer/language |
country | debian-installer/country |
locale | debian-installer/locale |
priority | debconf/priority |
file | preseed/file |
url | preseed/url |
interface | netcfg/choose_interface |
hostname | netcfg/get_hostname |
domain | netcfg/get_domain |
protocol | mirror/protocol |
suite | mirror/suite |
Jelikož DHCP umí předávat jméno souboru, je možné toho zneužít pro
určení souboru s přednastavením. Obvykle se totiž tato možnost používá
pro určení souboru, kterým se zavede systém ze sítě. Pokud ale bude
soubor ve formě URL, instalace to rozpozná a pokusí se soubor stáhnout
a použít jako soubor s přednastavením. Následující příkaz ukazuje, jak
upravit konfigurační soubor dhcpd.conf
serveru
ISC DHCP verze 3 (balík dhcp3-server).
if substring (option vendor-class-identifier, 0, 3) = "d-i" { filename "http://pocitac/preseed.cfg"; }
Všimněte si, že předchozí příklad omezuje použití na DHCP klienty,
kteří se identifikují jako „d-i“, takže by to nemělo
ovlivnit běžné DHCP klienty, ale pouze instalace. Direktivu
filename
můžete zadat například i do sekce pro
jediný počítač, takže neovlivníte ostatní instalace na síti.
K dobrým zvykům při přednastavování přes DHCP patří přednastavení pouze hodnot, které jsou specifické pro vaši síť, jako je např. lokální zrcadlo. Tím se při instalaci automaticky vybere správné zrcadlo, ale zbytek instalace probíhá interaktivně. Kompletní přednastavení přes DHCP byste měli provádět pouze s nejvyšší opatrností.
[28] Vlastníkem debconf proměnné (nebo šablony) je obvykle jméno balíku, který obsahuje odpovídající debconf šablonu. U proměnných používaných přímo v instalačním systému je vlastníkem „d-i“. Šablony a proměnné mohou mít více vlastníků, což pomáhá při rozhodování, zda je možné je při odinstalování balíku odstranit z databáze debconfu.