Θα πρέπει πρώτα να δημιουργήσετε ένα αρχείο προρύθμισης και να το τοποθετήσετεστο σημείο από το οποίο θέλετε να το χρησιμοποιήσετε. Η δημιουργία αυτού του αρχείου καλύπτεται παρακάτω σ' αυτό το παράρτημα. Η τοποθέτηση του αρχείου στο σωστό σημείο είναι αρκετά προφανής για προρύθμιση με δίκτυο ή αν θέλετε να το διαβάσετε από μια δισκέττα ή ένα usb-stick. Αν θέλετε να συμπεριλάβετε το αρχείο σ' ένα CD ή ένα DVD θα πρέπει να ξαναδημιουργήσετε την εικόνα ISO. Το πώς μπορείτε να συμπεριλάβετε το αρχείο σ' έναν δίσκο μνήμης initrd είναι πέρα από τους σκοπούς του παρόντος κειμένου. Παρακαλούμε συμβουλευθείτε την τεκμηρίωση για τους προγραμματιστές του debian-installer
.
Ένα παράδειγμα αρχείου προρυθμίσεων που μπορείτε να χρησιμοποιήσετε σαν βάση για το αντίστοιχο δικό σας, είναι διαθέσιμο στο ../example-preseed.txt. Το αρχείο αυτόβασίζεται στα τμήματα των ρυθμίσεων που περιλαμβάνονται σ' αυτό εδώ το παράρτημα.
Αν χρησιμοποιείτε initrd preseeding, αρκεί μόνο να βεβαιωθείτε ότι το αρχείο με όνομα preseed.cfg
περιλαμβάνεται στον ριζικό κατάλογο του δίσκου initrd. Ο εγκαταστάτης θα ελέγξει αυτόματα αν το αρχείο είναι παρόν και θα το φορτώσει.
Για τις άλλες μεθόδους preseeding, θα χρειαστεί να πείτε στον εγκαταστάτη ποιο αρχείο θα χρησιμοποιήσετε κατά την εκκίνησή του. Αυτο γίνεται συνήθως "περνώντας" μια παράμετρο εκκίνησης στον πυρήνα, είτε με το χέρι κατά την στιγμή της εκκίνησης ή με επεξεργασία του αρχείου ρύθμισης του φορτωτή εκκίνησης (πχ του syslinux.cfg
) και προσθέτοντας την παράμετρο στο τέλος της γραμμής(ών) προσθήκης για τον πυρήνα.
Αν όντως ορίσετε το αρχείο προρυθμίσεων στη διαμόρφωση του φορτωτή εκκίνησης, μπορείτε να αλλάξετε αυτή τη διαμόρφωση ώστε να μην χρειάζεται να πατήσετε enter για να ξεκινήσετε τον εγκαταστάτη. Για το syslinux αυτό σημαίνει να θέσετε τον χρόνο εξόδου (timeout) στο αρχείο syslinux.cfg
σε 1
.
Για να βεβαιωθείτε ότι ο εγκαταστάτης ανακτά το σωστό αρχείο, μπορείτε να προσδιορίσετε επιπλέον ένα checksum για το αρχείο. Προς το παρόν, αυτό θα πρέπει να είναι ένα md5sum και αν καθοριστεί θα πρέπει να ταιριάζει στο αρχείο προρύθμισης, διαφορετικά ο εγκαταστάτης θα αρνηθεί να το χρησιμοποιήσει.
Παράμετροι εκκίνησης που πρέπει να καθορίσετε: - για εκκίνηση από το δίκτυο: preseed/url=http://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - για εκκίνηση από επανεπεξεργασμένο CD: preseed/file=/cdrom/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - για εγκατάσταση από μέσο USB (τοποθετήστε το αρχείο preseed στον κορυφαίο κατάλογο του USB stick): preseed/file=/hd-media/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
Σημειώστε ότι οι διαδρομές για τα αρχεία preseed/url
και preseed/file
μπορούν να συντομευθούν απλά σε url
και file
αντίστοιχα, όταν δίνονται σαν παράμετροι εκκίνησης.
Αν ένα αρχείο προρύθμισης δεν μπορεί να χρησιμοποιηθεί για την προρύθμιση κάποιων βημάτων, η εγκατάσταση είναι δυνατόν να αυτοματοποιηθεί ακόμα πλήρως, αφού μπορείτε να περάσετε προκαθορισμένες τιμές στην ίδια την γραμμή εντολών κατά την εκκίνηση του εγκαταστάτη.
Παράμετροι εκκίνησης μπορούν επίσης να χρησιμοποιηθούν αν δεν θέλετε πραγματικά να χρησιμοποιήσετε τη μέθοδο προρύθμισης αλλά απλά να δώσετε απάντηση σε μια συγκεκριμένη ερώτηση. Μερικά παραδείγματα όπου αυτό μπορεί να είναι χρήσιμο τεκμηριώνονται σε άλλο σημείο αυτού του εγχειριδίου.
Για να ρυθμίσετε μια τιμή ώστε να χρησιμοποιηθεί μέσα στον debian-installer
απλά περάστε τις τιμές
για τις προρυθμισμένες παραμέτρους που αναφέρονται στα παραδείγματα αυτού του παραρτήματος. Αν μια τιμή πρόκειται να χρησιμοποιηθεί για την ρύθμιση πακέτων στο προς εγκατάσταση σύστημα, θα πρέπει να προτάξετε την παράμετρο owner[27] της μεταβλητής όπως για παράδειγμα στο path/to/variable
=value
. Αν δεν προσδιορίσετε τον κάτοχο, η τιμή για την μεταβλητή δεν θα αντιγραφεί στην βάση δεδομένων του debconf στο προς εγκατάσταση σύστημα και συνεπώς δεν θα χρησιμοποιηθεί κατά την ρύθμιση του αντίστοιχου πακέτου. owner
:path/to/variable
=value
Συνήθως η προρύθμιση μιας ερώτησης μ' αυτόν τον τρόπο σημαίνει ότι η συγκεκριμένη ερώτηση δεν θα τεθεί. Για να καθορίσετε μια συγκεκριμένη προεπιλεγμένη απάντηση για μια ερώτηση, αλλά παρόλα αυτά η ερώτηση αυτή να γίνεται, χρησιμοποιήστε “?=” αντί για “=” σαν τελεστή. Δείτε επίσης την ενότητα Τμήμα B.5.2, “Χρήση preseeding για την αλλαγή των προκαθορισμένων τιμών”.
Σημειώστε ότι μερικές μεταβλητές που ορίζονται συχνά στο προτρεπτικό εκκίνησης έχουν ένα συντομότερο παρωνύμιο (alias). Αν ένα τέτοιο παρωνύμιο είναι διαθέσιμο, είναι αυτό που χρησιμοποιείται στα παραδείγματα αυτού του παραρτήματος αντί του πλήρους ονόματος της μεταβλητής. Για παράδειγμα, η μεταβλητή preseed/url
χρησιμοποιείται με το παρωνύμιο url
. Ένα άλλο παράδειγμα είναι το παρωνύμιο tasks
που μεταφράζεται σε tasksel:tasksel/first
.
Ένα όρισμα “--” στις επιλογές εκκίνησης έχει ειδική σημασία. Παράμετροι του πυρήνα που εμφανίζονται μετά το τελευταίο “--” μπορούν να αντιγραφούν στο αρχείο ρυθμίσεων του φορτωτή εκκίνησης για το εγκατεστημμένο σύστημα (αν αυτό υποστηρίζεται από τον εγκαταστάτη για τον φορτωτή εκκίνησης). Ο εγκαταστάτης θα φιλτράρει αυτόματα οποιεσδήποτε επιλογές (όπως επιλογές προρύθμισης) μπορεί να αναγνωρίσει.
Πρόσφατοι πυρήνες του Linux (2.6.9 και μεταγενέστεροι) δέχονται ένα μέγιστο αριθμό 32 επιλογών γραμμής εντολών και 32 επιλογών περιβάλλοντος συμπεριλαμβανομένων οποιωνδήποτε επιλογών προστίθενται εξ' ορισμού από τον εγκαταστάτη. Αν οι αριθμοί αυτοί ξεπεραστούν, ο πυρήνας θα περάσει σε κατάσταση "πανικού" (crash). (Για παλιότερους πυρήνες αυτοί οι αριθμοί επιλογών ήταν χαμηλότεροι).
Για τις περισσότερες εγκαταστάσεις μερικές από τις προκαθορισμένες επιλογές στο αρχείο ρύθμισης του φορτωτή εκκίνησης, όπως vga=normal
, μπορούν με ασφάλεια να αφαιρεθούν, επιτρέποντας έτσι την προσθήκη περισσότερων επιλογών για προρύθμιση.
Ίσως να μην είναι πάντα εφικτό να καθορίσετε τιμές με κενά στις παραμέτρους εκκίνησης ακόμα κι αν τις βάλλετε μέσα σε εισαγωγικά.
Υπάρχουν αρκετά γνωρίσματα του Εγκαταστάτη του Debian που συνδυάζονται για να επιτρππεψουν σχετικά απλές εντολές γραμμής στο προτρεπτικό εκκίνησης να δώσουν οσοδήποτε σύνθετες αυτόματες εγκαταστάσεις προσαρμοσμένες στις ανάγκες σας. Για να το δείξουμε αυτό παραθέτουμε εδώ μερικά παραδείγματα που μπορούν να χρησιμοποιηθούν στο προτρεπτικό εκκίνησης:
auto url=autoserver
Αυτό βασίζεται στην ύπαρξη ενός εξυπηρετητή DHCP ο οποίος θα φέρει το μηχάνημά μας στο σημείο που ένας autoserver
του οποίου το όνομα μπορεί να προσδιοριστεί μέσω DNS, πιθανόν μετά και την προσθήκη του τοπικού τομέα δικτύου αν αυτό δώθηκε από το DHCP. Αν αυτό έγινε σε ένα δίκτυο που το όνομα τομέα του είναι example.com
, και το οποίο διαθέτει μια εύλογη ρύθμιση της υπηρεσίας DHCP, τότε το αποτέλεσμα θα ήταν η ανάκτηση του αρχείου προρύθμισης από το http://autoserver.example.com/d-i/squeeze/./preseed.cfg
.
Το τελευταίο κομμάτι της διεύθυνσης (d-i/squeeze/./preseed.cfg
) λαμβάνεται από το auto-install/defaultroot
. Εξ' ορισμού περιλαμβάνει τον κατάλογο squeeze
για να επιτρέπει σε μεταγενέστερες εκδόσεις του Debian να προσδιορίζουν το δικό τους κωδικό όνομα και στους χρήστες να αλλάζουν σ' αυτές με έναν ελεγχόμενο τρόπο. Το κομμάτι /./
χρησιμοποιείται σαν ένδειξη μιας ρίζας, σε σχέση με την οποία να μπορούν να αγκιστρώνονται άλλες διαδρομές στο σύστημα αρχείων που ακολουθούν (για χρήση με τα preseed/include και preseed/run). Αυτό επιτρέπει τον προσδιορισμό αρχείων σαν πλήρεις διευθύνσεις URL, και διαδρομές που ξεκινούν με / αγκιστρώνονται κατ' αυτόν τον τρόπο, ή ακόμα και σαν διαδρομές σχετικά με την τοποθεσία όπου βρέθηκε το τελευταίο αρχείο προρύθμισης. Αυτό μπορεί να χρησιμοποιηθεί στην κατασκευή πιο "φορητών" σεναρίων (script) στα οποία μια ολόκληρη ιεραρχία σεναρίων μπορεί να μετακινηθεί σε μια καινούρια τοποθεσία χωρίς προβλήματα, για παράδειγμα με την αντιγραφή των αρχείων σε ένα stick USB ενώ αυτά προέρχονται από έναν εξυπηρετητή web. Στο παράδειγμα αυτό, αν το αρχείο προρύθμισης θέτει το preseed/run
σαν /scripts/late_command.sh
τότε το αρχείο θα ανακτηθεί από τη διεύθυνση http://autoserver.example.com/d-i/squeeze/./scripts/late_command.sh
.
Αν δεν είναι διαθέσιμη μια τοπική υποδομή υπηρεσιών DNS ή DHCP, ή αν δεν θέλετε να χρησιμοποιήσετε την προκαθορισμένη διαδρομή στο preseed.cfg
, μπορείτε και πάλι να χρησιμοποιήσετε ένα συγκεκριμένο url, που αν δεν χρησιμοποιήσετε το κομμάτι /./
θα αγκιστρωθεί στην αρχή της διαδρομής (δηλ, το τρίτο /
στο URL). Εδώ είναι ένα παράδειγμα που απαιτεί ελάχιστη υποστήριξη από την τοπική δικτυακή υποδομή:
auto url=http://192.168.1.2/path/to/mypreseed.file
Ο τρόπος με τον οποίο δουλεύει αυτό είναι:
αν στην διεύθυνση URL δεν υπάρχει κάποιο πρωτόκολλο, υποτίθεται ότι αυτό είναι το http,
αν το όνομα του μηχανήματος δεν περιέχει τελείες, τότε προσάπτεται σ' αυτό το όνομα τομέα που προκύπτει από το DHCP, και
αν δεν υπάρχει /
μετά το όνομα του μηχανήματος, τότε προστίθεται η προκαθορισμένη διαδρομή.
Επιπρόσθετα από τον προσδιορισμό του url, μπορείτε ακόμα να προσδιορίσετε ρυθμίσεις που δεν επηρεάζουν άμεσα την συμπεριφορά του ίδιου του debian-installer
αλλά μπορούν να περάσουν στα σενάρια που προσδιορίζονται με την χρήση του preseed/run
στο αρχείο προρύθμισης που έχει ήδη φορτωθεί. Προς το παρόν, το μοναδικό παράδειγμα αυτής της κατάστασης είναι το auto-install/classes
, με παρωνύμιο classes
. Αυτό μπορεί να χρησιμοποιηθεί ως εξής:
auto url=example.com
classes=class_A;class_B
Οι κλάσεις θα μπορούσαν να δηλώνουν για παράδειγμα τον τύπο του συστήματος που πρόκειται να εγκατασταθεί, ή τις τοπικές ρυθμίσεις που πρόκειται να χρησιμοποιηθούν.
Φυσικά είναι δυνατόν να επεκτείνει κανείς αυτή την ιδέα, και αν κάνετε κάτι τέτοιο, είναι εύλογο να χρησιμοποιήσετε τον χώρο ονομασιών (namespace) auto-install για τον σκοπό αυτό. Έτσι μπορεί κανείς να έχει κάτι όπως το auto-install/style
που στη συνέχεια να χρησιμοποιείται στα σενάριά του. Αν αισθάνεστε την ανάγκη να κάνετε κάτι τέτοιο, παρακαλούμε αναφέρετέ το στη λίστα αλληλογραφίας <debian-boot@lists.debian.org>
ώστε να αποφύγουμε ασυμφωνίες στον χώρο ονομασιών και πιθανόν να προσθέσουμε ένα παρωνύμιο για την παράμετρο για λογαριασμό σας.
Η επικεφαλίδα εκκίνησης auto
δεν έχει ακόμα οριστεί παντού. Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί όμως προσθέτοντας απλά τις δυο παραμέτρους auto=true priority=critical
στη γραμμή εντολών του πυρήνα. Η παράμετρος auto
είναι ένα παρωνύμιο για την auto-install/enable
και η απόδοση της τιμής true
έχει σαν αποτέλεσμα την καθυστέρηση της διατύπωσης των ερωτήσεων για τις τοπικές ρυθμίσεις και το πληκτρολόγιο μέχρι τη στιγμή που θα έχει δοθεί η δυνατότητα προρύθμισής τους, ενώ η παράμετρος priority
είναι παρωνύμιο για την debconf/priority
και ο καθορισμός της σε critical
αποτρέπει την διατύπωση κάθε ερώτησης με χαμηλότερη προτεραιότητα.
Επιπλέον επιλογές που μπορεί να έχουν ενδιαφέρον στην προσπάθεια αυτοματοποίησης μιας εγκατάστασης με χρήση της υπηρεσίας DHCP είναι: interface=auto netcfg/dhcp_timeout=60
που κάνει το μηχάνημα να διαλέξει την πρώτη διαθέσιμη διεπαφή δικτύου (NIC) και να είναι περισσότερο "υπομονετικό" όσον αφορά την λήψη μιας απάντησης στο αίτημά του προς τον εξυπηρετητή DHCP.
Ένα εκτεταμένο παράγειγμα του πώς μπορείτε να χρησιμοποιήσετε αυτό το πλαίσιο, που συμπεριλαμβάνει παραδείγματα σεναρίων (script) και κλάσσεις, μπορεί να βρεθεί στον δικτυακό τόπο του προγραμματιστή. Τα παραδείγματα που δίνονται εκεί δείχνουν επίσης μερικά ακόμα χρήσιμα αποτελέσματα που μπορούν να επιτευχθούν μέσω της δημιουργικής χρήσης της προρύθμισης.
Τα παρακάτω ψευδώνυμα μπορεί να φανούν χρήσιμα όταν χρησιμοποιείτε προρύθμιση (κατάσταση αυτόματης εγκατάστασης). Σημειώστε ότι αυτά είναι απλά σύντομα ψευδώνυμα για ονόματα ερωτήσεων, και ότι θα πρέπει πάντα να προσδιορίζετε και μια τιμή: για παράδειγμα, auto=true
or 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 |
αρχείο | preseed/file |
url | preseed/url |
interface | netcfg/choose_interface |
hostname | netcfg/get_hostname |
domain | netcfg/get_domain |
protocol | mirror/protocol |
suite | mirror/suite |
Είναι επίσης δυνατόν να χρησιμοποιήσετε το πρωτόκολλο DHCP για τον προσδιορισμό ενός αρχείου προρυθμίσεων και να το κατεβάσετε από το δίκτυο. Το DHCP επιτρέπει τον προσδιορισμό ενός ονόματος αρχείου. Συνήθως αυτό είναι ένα αρχείο για εκκίνηση από το δίκτυο, αν όμως εμφανίζεται να είναι μια διεύθυνση URL τότε τα μέσα εγκατάστασης που υποστηρίζουν προρύθμιση μέσω δικτύου θα κατεβάσουν το αρχείο από την διεύθυνση αυτή και θα το χρησιμοποιήσουν σαν αρχείο προρυθμίσεων. Εδώ είναι ένα παράδειγμα του πώς να κάνετε την αντίστοιχη ρύθμιση στο αρχείο dhcpd.conf για την έκδοση 3 του εξυπηρετητή DHCP του ISC (το πακέτο dhcp3-server στο Debian).
if substring (option vendor-class-identifier, 0, 3) = "d-i" { filename "http://host/preseed.cfg"; }
Σημειώστε ότι το προηγούμενο παράδειγμα περιορίζει το όνομα του αρχείου σε πελάτες DHCP που ταυτοποιούνται οι ίδιοι σαν "d-i", ώστε να μην επηρρεάζονται συνηθισμένοι πελάτες DHCP, αλλά μόνο ο εγκαταστάτης. Μπορείτε επίσης να βάλετε το κείμενο σε stanza μόνο για ένα συγκεκριμένο μηχάνημα για να αποφύγετε την εφαρμογή των προρυθμίσεων για όλες τις εγκαταστάσεις στο δίκτυό σας.
Ένας καλός τρόπος να χρησιμοποιήσετε την μέθοδο προρύθμισης με χρήση DHCP είναι να προρυθμίσετε μόνο τις τιμές που έχουν να κάνουν με το δίκτυό σας, όπως για παράδειγμα τον καθρέφτη του Debian που θα χρησιμοποιήσετε. Με τον τρόπο αυτό οι εγκαταστάσεις στο δίκτυό σας θα έχουν προεπιλεγμένον έναν κατάλληλο καθρέφτη της αρχειοθήκης, ενώ το υπόλοιπο της εγκατάστασης μπορεί να πραγματοποιηθεί διαδραστικά. Η χρήση προρυθμίσεων μέσω DHCP για την πλήρη αυτοματοποίηση των εγκαταστάσεων του Debian θα πρέπει να γίνεται μόνο με προσοχή.
[27] Ο κάτοχος (owner) μιας μεταβλητής του debconf (ή ενός υποδείγματος, template) είναι συνήθως το όνομα του πακέτου του πακέτου που περιέχει το αντίστοιχο υπόδειγμα debconf. Για μεταβλητέςπου χρησιμοποιούνται στον ίδιο τον εγκαταστάτη ο κάτοχος είναι “d-i”. Υποδείγματα και μεταβλητές μπορούν να έχουν περισσότερους από έναν κατόχους κάτι που βοηθά στον προσδιορισμό του αν αυτές μπορούν να αφαιρεθούν από την βάση δεδομένων του debconf σε περίπτωση πλήρους αφαίρεσης του πακέτου.