B.2. Utilització de la configuració prèvia

Primer de tot heu de crear un fitxer de configuració prèvia i posar-lo al lloc des d'on voleu fer-lo servir. La creació de fitxers de configuració prèvia es tractarà després. Col·locar-los correctament és fàcil en el cas de la configuració per xarxa o si voleu llegir el fitxer des d'un disquet o una memòria USB. Si voleu incloure el fitxer a un CD o un DVD, heu de reconfigurar la imatge ISO. El procediment per incloure el fitxer a l'initrd no s'explica aquí; consulteu la documentació per als desenvolupadors del debian-installer.

Teniu a l'abast un exemple de fitxer de configuració prèvia que podeu emprar com a base per al vostre a http://www.debian.org/releases/squeeze/example-preseed.txt. Aquest fitxer es basa en els fragments de configuració inclosos en aquest apèndix.

B.2.1. Càrrega del fitxer de configuració prèvia

Si esteu emprant una configuració prèvia de l'initrd, només heu d'assegurar-vos que hi haja un fitxer preseed.cfg inclòs al directori arrel de l'initrd. L'instal·lador comprovarà automàticament si aquest fitxer és present i el carregarà.

En els altres mètodes de configuració prèvia heu de dir-li a l'instal·lador el fitxer que s'usarà quan l'arrenqueu. Això es fa normalment indicant al nucli un paràmetre d'arrencada, bé manualment en el moment d'arrencar o bé editant el fitxer de configuració del carregador (p.ex. syslinux.cfg) i afegint-hi el paràmetre al final de la (les) línia (línies) addicionals per al nucli.

Si especifiqueu el fitxer a la configuració del carregador, podeu modificar la configuració prèvia per no haver de prémer enter per arrencar l'instal·lador. En el syslinux això vol dir ajustar el temps d'espera (timeout) a 1, a syslinux.cfg.

Per assegurar-vos que l'instal·lador obté el fitxer de configuració prèvia correcte, podeu especificar-ne una suma de verificació. Actualment ha de ser una md5sum, i si l'especifiqueu ha de correspondre al fitxer, altrament l'instal·lador no voldrà fer-la servir.

Paràmetres d'arrencada que cal especificar:
- si esteu arrencant en xarxa:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- si esteu arrencant amb un CD reconfigurat:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- si esteu instal·lant des d'un dispositiu USB (poseu el fitxer al directori
  principal de la memòria USB):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Adoneu-vos que preseed/url pot escurçar-se a tan sols url i preseed/file a file quan són passats com a paràmetres d'arrencada.

B.2.2. Utilització dels paràmetres d'arrencada per complementar la configuració prèvia

Si no es pot utilitzar un fitxer de preconfiguració per fer la configuració prèvia per alguns passos, la instal·lació encara es pot automatitzar completament, ja que podeu passar valors de la configuració prèvia a línia d'ordres quan està arrencant l'instal·lador.

També podeu utilitzar els paràmetres d'arrencada si no voleu utilitzar la configuració prèvia, però voleu donar una resposta a una pregunta específica. Hi ha alguns exemples on açò pot ser útil, documentats per tot arreu en aquest manual.

Per donar un valor que s'utilitze dins el debian-installer, passeu ruta/a/la/variable=valor per qualsevol de les variables que es poden configurar prèviament que són als exemples en aquest apèndix. Si un valor s'utilitza per configurar paquets al sistema destí, necessitareu afegir abans el propietari[19] de la variable com propietari:ruta/a/la/variable=valor. Si no especifiqueu el propietari, el valor de la variable no es copiarà a la base de dades debconf en el sistema destí i no s'utilitzarà a la configuració del paquet rellevant.

Normalment, la preconfiguració d'una pregunta d'aquesta manera, implicarà que la pregunta no es farà. Per donar un valor específic per a una pregunta, però fer que encara es faça la pregunta, utilitzeu “?=” en comptes de “=” com a operador. Vegeu Secció B.5.2, “Ús de la configuració prèvia per canviar els valors predeterminats”.

Adoneu-vos que algunes variables a les que es dona valors freqüentment a l'indicador de l'arrencada tenen una forma curta. Si hi ha una forma curta, s'utilitzarà en els exemples d'aquest apèndix en comptes de la variable completa. Per exemple, la variable preseed/url te com a forma curta url. Un altre exemple és la forma curta tasks, que es tradueix a tasksel:tasksel/first .

Un “--” a les opcions d'arrencada té un significat especial. Els paràmetres del nucli que apareixen després de l'últim “--” es poden copiar al carregador d'arrencada del sistema instal·lat (si ho suporta l'instal·lador del carregador d'arrencada). L'instal·lador automàticament filtrarà qualsevol opció (com les opcions preconfigurades) que reconegui.

Nota

Els nuclis actuals (2.6.9 i posteriors) accepten un màxim de 32 opcions a la la línia d'ordres i 32 opcions d'entorn, que inclou qualsevol opció afegida per defecte per l'instal·lador. Si es superen aquestes quantitats, el nucli farà un «panic» (petarà). (Als nuclis anteriors, aquestes quantitats eren inferiors).

A quasi totes les instal·lacions es poden esborrar amb seguretat algunes de les opcions per defecte en el fitxer de configuració del carregador d'arrencada, com vga=normal, que us permetrà que afegiu més opcions per la configuració prèvia.

Nota

No sempre és possible passar valors amb espais als paràmetres d'arrencada, encara que els delimiteu amb cometes.

B.2.3. Mode auto

Hi ha algunes característiques de l'instal·lador de Debian que combinen la simplicitat de la línia d'ordres de l'indicador d'arrencada per aconseguir unes instal·lacions automàtiques personalitzades arbitràriament complexes. Per il·lustrar-ho, ací teniu alguns exemples que es poden utilitzar a l'indicador de l'arrencada:

auto url=autoserver

Aquesta part dona per suposat que hi ha un servidor DHCP que posarà la màquina en un punt on el autoserver es pot resoldre per DNS, pot ser després d'afegir el domini local si s'ha proporcionat per DHCP. Si es fa a un lloc on el domini és exemple.com, i té una configuració ben pensada, podria donar com a resultat que el fitxer de configuració prèvia es trobe a http://autoserver.example.com/d-i/squeeze/./preseed.cfg.

L'última part de l'adreça (d-i/squeeze/./preseed.cfg) s'agafa d'auto-install/defaultroot. Per defecte açò inclou el directori squeeze per que permeti que les futures versions donen el seu nom codi propi i permeti que la gent migre d'una forma controlada. El /./ s'utilitza per indicar un origen al qual les rutes subsegüents es referiran (per utilitzar en preseed/include i preseed/run). Açò es pot utilitzar per construir uns guions més portables de forma que una estructura completa de guions es pugui moure a una nova localització sense trencar-la, per exemple copiant els fitxers a un llapis USB quan s'inicia des d'un servidor web. En aquest exemple, si el fitxer de configuració prèvia dona el valor /scripts/late_command.sh a preseed/run aleshores el fitxer es descarregarà des de http://autoserver.example.com/d-i/squeeze/./scripts/late_command.sh.

Si no hi ha cap servidor DHCP o infraestructura DNS, o si no voleu utilitzar la ruta per defecte a preseed.cfg, encara podeu utilitzar una adreça explícita, i si no utilitzeu l'element /./ es referirà a l'inici de la ruta (es a dir, el tercer / a la URL). Ací hi ha un exemple que necessita d'un suport mínim de la infraestructura local de la xarxa:

auto url=http://192.168.1.2/ruta/al/fitxer.configuració.previa

La forma en que açò funciona és:

  • Si la URL no conté un protocol, es suposa http,

  • si la secció hostname no té períodes, té el domini derivat del DHCP afegit, i

  • si no hi ha cap / després del hostname, aleshores s'afegeix la ruta per defecte.

Addicionalment a especificar la url, podeu també donar els paràmetres que no afecten directament el comportament del debian-installer, però que es poden passar a traves dels guions donats utilitzant preseed/run al fitxer de configuració prèvia carregat. En aquest moment, l'únic exemple d'aquest és auto-install/classes, que, té d'àlies classes. Açò es pot utilitzar així:

auto url=example.com classes=classe_A;classe_B

Les classes podrien per exemple indicar el tipus de sistema al instal·lar, o la localització a utilitzar.

Per suposat, es pot estendre aquest concepte, i si ho feu, és raonable que s'utilitze l'espai de noms auto-install per fer-ho. Així que hauríeu de tenir quelcom de l'estil auto-install/style que s'utilitza aleshores als vostres guions. Si creieu que necessiteu fer-ho, d eu-ho a la llista de correu de forma que ens sigui possible evitar conflictes a l'espai de noms, i pot ser afegir un àlies del paràmetre per vosaltres.

L'etiqueta d'arrencada auto no està definida a tots els llocs. El mateix efecte es pot aconseguir afegint dos paràmetres auto=true priority=critical a la línia d'ordres del nucli. El paràmetre auto és un àlies d'auto-install/enable i establir-lo a true posposa les preguntes del locale i del teclat fins que es tingui oportunitat de fer la configuració prèvia d'aquestes, mentre priority és un àlies per debconf/priority i donant-li el valor critical evita que es faci qualsevol pregunta amb una prioritat més baixa.

Les opcions addicionals que poden interessar mentre s'intenta automatitzar una instal·lació que faci ús de DHCP són: interface=auto netcfg/dhcp_timeout=60 que fa que la màquina agafe el primer NIC i espere a aconseguir una resposta a la seva petició DHCP.

Suggeriment

Podeu trobar un exemple detallat de com utilitzar aquest entorn, incloent scripts i classes d'exemple, a la pàgina del seu desenvolupador. Els exemples disponibles també mostren altres usos del sistema de preconfiguració.

B.2.4. Àlies útils per la configuració prèvia

Els àlies que hi ha a continuació poden ser útils quan s'utilitza la configuració prèvia (mode auto). Adoneu-vos que es tracta d'àlies curts per a noms de preguntes, i que sempre cal que especifiqueu també un valor: per exemple, auto=true o 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

B.2.5. Utilitzar un servidor DHCP per especificar els fitxers de configuració prèvia

També és possible fer servir DHCP per especificar un fitxer de configuració prèvia i descarregar-lo des de la xarxa. Normalment s'indiquen fitxers per a arrencar la màquina per xarxa, però si es tracta d'una URL, aleshores els mitjans d'instal·lació que suporten configuracions prèvies per xarxa es descarregaran el fitxer i l'utilitzaran per a la configuració. A continuació teniu un exemple de com s'ha de configurar el fitxer dhcpd.conf per a la versió 3 del servidor DHCP del ISC (el paquet dhcp3-server a Debian).

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

Tingueu en compte que l'exemple anterior limita el fitxer a clients DHCP que s'identifiquin com "d-i", i per tant no afectarà a la resta de clients DHCP. També podeu indicar un text per a una màquina en particular de manera que no afecti a la resta d'instal·lacions de la vostra xarxa.

Una bona manera d'usar la configuració prèvia amb DHCP és fer-ho només per a valors específics de la xarxa, com el servidor rèplica que es vol utilitzar. Així totes les instal·lacions de la xarxa seleccionaran una rèplica adequada automàticament, però la resta de la instal·lació es podrà fer interactivament. Si voleu fer instal·lacions completes amb configuracions prèvies i DHCP haureu d'anar amb més cura.



[19] Normalment, el propietari d'una variable debconf (o una plantilla) és el nom del paquet que conté la plantilla debconf que es correspon a la plantilla debconf corresponent. Les variables utilitzades en l'instal·lador en si mateix tenen com propietari “d-i”. Les plantilles i variables poden tenir més d'un propietari que ajuden a determinar si es poden esborrar de la base de dades debconf quan el paquet s'esborre completament.