B.2. Utilizarea preconfigurării

Mai întâi va trebui să creați un fișier de preconfigurare și să-l plasați în locația de unde doriți să-l utilizați. Crearea fișierului de preconfigurare este tratată mai târziu în această anexă. Plasarea acestuia în locația corectă este destul de simplă pentru preconfigurarea „network” sau dacă doriți să citiți fișierul de pe un stick USB. Dacă doriți să includeți fișierul într-o imagine ISO de instalare, va trebui să remasterizați imaginea. Cum să obțineți fișierul de preconfigurare inclus în initrd este în afara domeniului de aplicare al acestui document; pentru aceasta, consultați documentația dezvoltatorilor pentru debian-installer.

Un exemplu de fișier de preconfigurare pe care îl puteți folosi ca bază pentru propriul fișier de preconfigurare este disponibil la https://d-i.debian.org/manual/example-preseed.txt. Acest fișier se bazează pe fragmentele de configurare incluse în această anexă.

B.2.1. Încărcarea fișierului de preconfigurare

Dacă utilizați preconfigurarea „initrd”, trebuie doar să vă asigurați că un fișier numit preseed.cfg este inclus în directorul rădăcină al initrd. Programul de instalare va verifica automat dacă acest fișier este prezent și îl va încărca.

Pentru celelalte metode de preconfigurare, trebuie să-i indicați programului de instalare ce fișier să folosească atunci când îl porniți. Acest lucru se face în mod normal prin pasarea nucleului a unui parametru de pornire, fie manual în momentul pornirii, fie prin editarea fișierului de configurare a încărcătorului de pornire (de exemplu, syslinux.cfg) și adăugând parametrul la sfârșitul liniei(lor) „append” pentru nucleu.

Dacă specificați fișierul de preconfigurare în configurația încărcătorului de pornire, este posibil să modificați configurația, astfel încât să nu fie nevoie să apăsați tasta «Enter» pentru a porni programul de instalare. Pentru syslinux, aceasta înseamnă stabilirea timpului de expirare la 1 în syslinux.cfg.

Pentru a vă asigura că programul de instalare preia fișierul de preconfigurare corect, puteți specifica opțional o sumă de verificare pentru fișier. În prezent, aceasta trebuie să fie o sumă md5 și, dacă este specificată, trebuie să se potrivească cu fișierul de preconfigurare sau programul de instalare va refuza să-l folosească.

Parametrii de pornire de specificat:
- dacă porniți din rețea:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d
- sau
  preseed/url=tftp://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- dacă porniți o imagine de instalare remasterizată:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- dacă instalați de pe un suport USB (puneți fișierul de preconfigurare
  în directorul de nivel superior al stick-ului USB):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Rețineți că preseed/url poate fi scurtat la url, preseed/file la file și preseed/file/checksumla preseed-md5 atunci când acestea sunt transmise ca parametri de pornire.

B.2.2. Utilizarea parametrilor de pornire pentru a preconfigura întrebări

Dacă un fișier de preconfigurare nu poate fi utilizat pentru a preconfigura unii pași, instalarea poate fi în continuare complet automatizată, deoarece puteți trece valorile prestabilite în linia de comandă atunci când porniți programul de instalare.

Parametrii de pornire pot fi utilizați și dacă nu doriți cu adevărat să utilizați preconfigurarea, ci doriți doar să oferiți un răspuns la o anumită întrebare. Unele exemple în care acest lucru poate fi util sunt documentate în altă parte a acestui manual.

Pentru a definii o valoare care să fie utilizată în interiorul debian-installer, trebuie doar să indicați ruta/la/variabilă=valoare pentru oricare dintre variabilele prestabilite enumerate. Dacă urmează să fie utilizată o valoare pentru configurarea pachetelor pentru sistemul țintă, va trebui să adăugați înainte proprietarul[19] variabilei ca în proprietar:ruta/la/variabilă=valoare. Dacă nu specificați proprietarul, valoarea variabilei nu va fi copiată în baza de date debconf din sistemul țintă și astfel rămâne neutilizată în timpul configurării pachetului relevant.

În mod normal, preconfigurarea unei întrebări în acest mod va însemna că întrebarea nu va fi adresată. Pentru a definii o anumită valoare implicită pentru o întrebare, dar să aveți în continuare întrebarea, utilizați ?= în loc de = ca operator. A se vedea, de asemenea, Secțiune B.5.2, „Utilizarea preconfigurării pentru a modifica valorile implicite”.

Rețineți că unele variabile care sunt definite frecvent în promptul de pornire au un alias mai scurt. Dacă este disponibil un alias, acesta este folosit în exemplele din această anexă în loc de variabila completă. Variabila preseed/url, de exemplu, are ca alias url. Un alt exemplu este variabila-alias tasks, ce reprezintă tasksel:tasksel/first.

Un --- în opțiunile de pornire are o semnificație specială. Parametrii nucleului care apar după ultimul --- pot fi copiați în configurația încărcătorului de pornire pentru sistemul instalat (dacă sunt acceptați de instalatorul pentru încărcătorul de pornire). Programul de instalare va filtra automat orice opțiuni (cum ar fi opțiunile de preconfigurare) pe care le recunoaște.

[Notă] Notă

Nucleele Linux actuale (2.6.9 și ulterioare) acceptă maximum 32 de opțiuni de linie de comandă și 32 de opțiuni de mediu, inclusiv orice opțiuni adăugate implicit pentru programul de instalare. Dacă aceste numere sunt depășite, nucleul va intra în panică (se va bloca); (pentru nucleele anterioare, aceste numere erau mai mici).

Pentru majoritatea instalărilor, unele dintre opțiunile implicite din fișierul de configurare a încărcătorului de pornire, cum ar fi vga=normal, pot fi eliminate în siguranță, ceea ce vă poate permite să adăugați mai multe opțiuni pentru preconfigurare.

[Notă] Notă

Nu întotdeauna va fi posibil să specificați valori cu spații pentru parametrii de pornire, chiar dacă le delimitați cu ghilimele.

B.2.3. Modul auto

Există mai multe caracteristici ale programului de instalare Debian care se combină pentru a permite liniilor de comandă destul de simple din promptul de pornire să aibă ca rezultat instalări automate personalizate arbitrar și complexe.

Acest lucru este activat prin utilizarea opțiunii de pornire Instalare automată, numită și auto pentru unele arhitecturi sau metode de pornire. În această secțiune, auto nu este așadar un parametru, înseamnă selectarea acelei opțiuni de pornire și adăugarea următorilor parametri de pornire la promptul de pornire. Consultați Secțiune 5.1.5, „Ecranul de pornire” pentru informații despre cum să adăugați un parametru de pornire.

Pentru a ilustra acest lucru, iată câteva exemple care pot fi folosite în promptul de pornire:

auto url=autoserver

Acest lucru se bazează pe existența unui server DHCP care va duce mașina la punctul în care autoserver poate fi rezolvat prin DNS, poate după adăugarea domeniului local dacă acesta a fost furnizat de DHCP. Dacă acest lucru s-a făcut pe un sit în care domeniul este exemplu.com și acesta are o configurare DHCP rezonabilă, ar avea ca rezultat preluarea fișierului de preconfigurare de la http://autoserver. exemplu.com/d-i/trixie/./preseed.cfg.

Ultima parte a acestei adrese URL (d-i/trixie/./preseed.cfg) este preluată de la auto-install/defaulttroot. În mod implicit, acesta include directorul trixie pentru a permite versiunilor viitoare să-și specifice propriul nume de cod și să permită oamenilor să migreze la următoarea versiune într-o manieră controlată. Elementul /./ este folosit pentru a indica o rădăcină, în raport cu care rutele ulterioare pot fi ancorate (pentru a fi utilizate în preseed/include și preseed/run). Acest lucru permite fișierelor să fie specificate fie ca URL-uri complete, rute care încep cu / care sunt astfel ancorate, fie chiar rute legate de locația în care a fost găsit ultimul fișier de preconfigurare. Acest lucru poate fi folosit pentru a construi mai multe scripturi portabile în care o întreagă ierarhie de scripturi poate fi mutată într-o nouă locație fără a o rupe, de exemplu, copierea fișierelor pe un stick USB când înainte erau pe un server web. În acest exemplu, dacă fișierul de preconfigurare definește preseed/run la /scripts/late_command.sh, atunci fișierul va fi preluat de la http://autoserver.exemplu .com/d-i/trixie/./scripts/late_command.sh.

Dacă nu există o infrastructură locală DHCP sau DNS sau dacă nu doriți să utilizați ruta implicită către preseed.cfg, puteți utiliza totuși o adresă URL explicită, iar dacă nu utilizați elementul /./, va fi ancorat la începutul rutei (adică al treilea / din adresa URL). Iată un exemplu care necesită suport minim din partea infrastructurii rețelei locale:

auto url=http://192.168.1.2/ruta/la/fișierul_meu.preconfigurat

Modul în care funcționează acesta este următorul:

  • dacă adresa URL nu indică un protocol, se presupune că este http,

  • dacă secțiunea de nume de gazdă nu conține puncte, domeniul derivat din DHCP, va fi atașat acesteia și

  • dacă nu există / după numele gazdei, atunci se adaugă ruta implicită.

Pe lângă specificarea adresei URL, puteți specifica, de asemenea, configurări care nu afectează direct comportamentul debian-installer în sine, dar pot fi transmise către scripturile specificate folosind preseed/run în fișierul de preconfigurare încărcat. În prezent, singurul exemplu în acest sens este auto-install/classes, care are un alias clase. Acesta poate fi folosit astfel:

auto url=exemplu.com classes=class_A;class_B

Clasele ar putea indica, de exemplu, tipul de sistem care urmează să fie instalat sau localizarea care trebuie utilizată.

Desigur, este posibil să extindeți acest concept și, dacă o faceți, este rezonabil să utilizați spațiul de nume de instalare automată pentru aceasta. Deci s-ar putea să aibă ceva de genul auto-install/style care este apoi folosit în scripturile dumneavoastră. Dacă simțiți nevoia să faceți acest lucru, menționați-l pe lista de corespondență , astfel încât să putem evita conflictele în spațiul de nume și, probabil, să adăugați un alias pentru parametru. .

Alegerea de pornire auto nu este încă definită pe toate arhitecturile. Același efect poate fi obținut prin simpla adăugare a celor doi parametri auto=true priority=critical la linia de comandă a nucleului. Parametrul nucleului auto este un alias pentru auto-install/enable și fixarea acestuia la true întârzie întrebările de localizare și de tastatură astfel încât acestea să poată fi preconfigurate, în timp ce priority este un alias pentru debconf/priority și fixarea acestuia la critic oprește întrebările cu o prioritate mai scăzută.

Opțiuni suplimentare care pot fi de interes atunci când încercați să automatizați o instalare în timp ce utilizați DHCP sunt: interface=auto netcfg/dhcp_timeout=60, ceea ce face ca mașina să aleagă primul NIC viabil și să aibă mai multă răbdare în a obține un răspuns la interogarea sa DHCP.

[Indicație] Indicație

Un exemplu extins de utilizare a acestui cadru, inclusiv exemple de scripturi și clase, poate fi găsit la situl web al dezvoltatorului său. Exemplele disponibile acolo arată, de asemenea, multe alte efecte drăguțe care pot fi obținute prin utilizarea creativă a preconfigurării.

B.2.4. Alias utile cu preconfigurarea

Următoarele alias pot fi utile atunci când utilizați preconfigurarea (modul automat). Rețineți că acestea sunt pur și simplu pseudonime scurte pentru numele întrebărilor și trebuie întotdeauna să specificați și o valoare: de exemplu, auto=true sau interface=eth0.

priority debconf/priority
fb debian-installer/framebuffer
auto auto-install/enable
classes auto-install/classes
file preseed/file
url preseed/url
theme debian-installer/theme
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
keymap keyboard-configuration/xkb-keymap
modules anna/choose_modules
firmware hw-detect/firmware-lookup
interface netcfg/choose_interface
domain netcfg/get_domain
hostname    netcfg/get_hostname
protocol mirror/protocol
suite mirror/suite
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
desktop tasksel:tasksel/desktop
preseed-md5 preseed/file/checksum

B.2.5. Exemple de preconfigurare a promptului de pornire

Iată câteva exemple despre cum ar putea arăta promptul de pornire (va trebui să o adaptați nevoilor dvs.; consultați și Secțiune 5.1.5, „Ecranul de pornire”).

# Pentru a stabilii româna ca limbă și România ca țară:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=ro country=RO --- quiet
# Pentru a stabilii engleza ca limbă, Germania ca țară și să utilizați un aranjament al tastaturii germane:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US.UTF-8 keymap=de --- quiet
# Pentru a instala biroul MATE:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet
# Pentru a instala sarcina de server Web:
/install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---

B.2.6. Utilizarea unui server DHCP pentru a specifica fișierele de preconfigurare

De asemenea, este posibil să utilizați DHCP pentru a specifica un fișier de preconfigurare de descărcat din rețea. DHCP permite specificarea unui nume de fișier. În mod normal, acesta este un fișier pentru pornirea din rețea (netboot), dar dacă pare a fi o adresă URL, mediile de instalare care acceptă preconfigurarea rețelei vor descărca fișierul de la adresa URL și îl vor folosi ca fișier de preconfigurare. Iată un exemplu despre cum să-l definiți în fișierul „dhcpd.conf” pentru versiunea 3 a serverului ISC DHCP (pachetul isc-dhcp-server Debian).

if substring (option vendor-class-identifier, 0, 3) = "d-i" {
    filename "http://host/preseed.cfg";
}

Rețineți că exemplul de mai sus limitează acest nume de fișier la clienții DHCP care se identifică ca d-i, astfel încât nu va afecta clienții DHCP obișnuiți, ci doar programul de instalare. De asemenea, puteți pune textul într-un bloc de instrucțiuni doar pentru o anumită gazdă, pentru a evita preconfigurarea tuturor instalărilor din rețea.

O modalitate bună de a utiliza preconfigurarea DHCP este să prestabiliți numai valorile specifice rețelei dvs., cum ar fi oglinda Debian de utilizat. În acest fel, instalările în rețeaua dvs. vor obține automat o oglindă bună selectată, dar restul instalării poate fi efectuată interactiv. Utilizarea preconfigurării DHCP pentru a automatiza complet instalările Debian ar trebui făcută numai cu multă grijă.



[19] Proprietarul unei variabile debconf (sau șablon) este în mod normal numele pachetului care conține șablonul debconf corespunzător. Pentru variabilele utilizate în programul de instalare propriu-zis, proprietarul este d-i. Șabloanele și variabilele pot avea mai mult de un proprietar, ceea ce ajută să se determine dacă pot fi eliminate din baza de date debconf dacă pachetul este curățat.