B.2. Menggunakan preseed

Pertama Anda harus membuat berkas prakonfigurasi dan menempatkannya di lokasi dari mana Anda ingin menggunakannya. Membuat berkas prakonfigurasi dibahas nanti dalam lampiran ini. Menempatkannya di lokasi yang benar cukup mudah untuk preseed jaringan atau jika Anda ingin membaca berkas dari flash disk USB. Jika Anda ingin memasukkan berkas dalam image ISO instalasi, Anda harus me-remaster image. Cara mendapatkan berkas prakonfigurasi yang termasuk dalam initrd berada di luar cakupan dokumen ini; silakan baca dokumentasi pengembang untuk debian-installer.

Contoh berkas prakonfigurasi yang dapat Anda gunakan sebagai dasar untuk berkas prakonfigurasi Anda sendiri tersedia dari https://www.buy-develop.eu.org/releases/bookworm/example-preseed.txt. Berkas ini didasarkan pada fragmen konfigurasi yang disertakan dalam lampiran ini.

B.2.1. Memuat berkas prakonfigurasi

Jika Anda menggunakan preseed initrd, Anda hanya perlu memastikan berkas bernama preseed.cfg disertakan dalam direktori root initrd. Pemasang akan secara otomatis memeriksa apakah berkas ini ada dan memuatnya.

Untuk metode preseed lainnya, Anda perlu memberi tahu pemasang berkas apa yang akan digunakan saat Anda mem-boot-nya. Ini biasanya dilakukan dengan meneruskan kernel parameter boot, baik secara manual pada saat boot atau dengan mengedit berkas konfigurasi bootloader (misalnya syslinux.cfg) dan menambahkan parameter ke akhir baris append untuk kernel.

Jika Anda menentukan berkas prakonfigurasi dalam konfigurasi bootloader, Anda dapat mengubah konfigurasi sehingga Anda tidak perlu menekan enter untuk mem-boot pemasang. Untuk syslinux ini berarti mengatur batas waktu ke 1 di syslinux.cfg.

Untuk memastikan pemasang mendapatkan berkas prakonfigurasi yang tepat, Anda dapat secara opsional menentukan checksum bagi berkas tersebut. Saat ini harus berupa md5sum, dan jika ditentukan harus cocok dengan berkas prakonfigurasi atau pemasang akan menolak untuk menggunakannya.

Parameter boot yang ditentukan:
- jika Anda netboot:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d
- atau
  preseed/url=tftp://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- jika Anda mem-boot image instalasi remaster:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- jika Anda memasang dari media USB (masukkan berkas prakonfigurasi di
  direktori tingkat puncak flash disk USB):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Perhatikan bahwa preseed/url dapat disingkat menjadi hanya url, preseed/file menjadi hanya file dan preseed/file/checksum menjadi hanya preseed-md5 ketika mereka dilewatkan sebagai parameter boot.

B.2.2. Menggunakan parameter boot untuk pertanyaan preseed

Jika berkas prakonfigurasi tidak dapat digunakan untuk melakukan preseed beberapa langkah, instalasi masih dapat sepenuhnya otomatis, karena Anda dapat meneruskan nilai preseed pada baris perintah saat mem-boot pemasang.

Parameter boot juga dapat digunakan jika Anda tidak benar-benar ingin menggunakan preseed, tetapi hanya ingin memberikan jawaban untuk pertanyaan tertentu. Beberapa contoh di mana ini dapat berguna didokumentasikan di tempat lain dalam manual ini.

Untuk menetapkan nilai yang akan digunakan di dalam debian-installer, cukup berikan path/ke/variabel=nilai bagi salah satu variabel preseed yang tercantum dalam contoh di lampiran ini. Jika nilai akan digunakan untuk mengonfigurasi paket bagi sistem target, Anda harus menambahkan pemilik[19] dari variabel seperti pada pemilik:path/ke/variabel=nilai. Jika Anda tidak menentukan pemilik, nilai untuk variabel tidak akan disalin ke basis data debconf dalam sistem target dan dengan demikian tetap tidak digunakan selama konfigurasi paket yang relevan.

Biasanya, mem-preseed pertanyaan dengan cara ini akan berarti bahwa pertanyaan tersebut tidak akan ditanyakan. Untuk menetapkan nilai baku tertentu bagi pertanyaan, tetapi pertanyaan masih diajukan, gunakan ?=, bukan = sebagai operator. Lihat juga Bagian B.5.2, “Menggunakan preseed untuk mengubah nilai baku”.

Perhatikan bahwa beberapa variabel yang sering diatur pada prompt boot memiliki alias yang lebih pendek. Jika alias tersedia, itu digunakan dalam contoh dalam lampiran ini, bukan variabel lengkap. Variabel preseed/url misalnya telah diberi alias sebagai url. Contoh lain adalah alias tasks, yang diterjemahkan menjadi tasksel:tasksel/first.

Sebuah --- dalam opsi boot memiliki arti khusus. Parameter kernel yang muncul setelah --- terakhir dapat disalin ke dalam konfigurasi bootloader untuk sistem yang dipasang (jika didukung oleh pemasang untuk bootloader). Pemasang akan secara otomatis memfilter opsi apa pun (seperti opsi prakonfigurasi) yang dikenalinya.

[Catatan] Catatan

Kernel linux saat ini (2.6.9 dan yang lebih baru) menerima maksimum 32 opsi baris perintah dan 32 opsi lingkungan, termasuk opsi apa pun yang ditambahkan secara baku untuk pemasang. Jika angka-angka ini terlampaui, kernel akan panik (crash). (Untuk kernel sebelumnya, angka-angka ini lebih rendah.)

Untuk sebagian besar instalasi, beberapa opsi baku dalam berkas konfigurasi bootloader Anda, seperti vga=normal, dapat dihapus dengan aman yang memungkinkan Anda menambahkan lebih banyak opsi untuk preseed.

[Catatan] Catatan

Tidak selalu mungkin untuk menentukan nilai dengan spasi untuk parameter boot, bahkan jika Anda membatasinya dengan tanda kutip.

B.2.3. Modus otomatis

Ada beberapa fitur Pemasang Debian yang menggabungkan agar memungkinkan baris perintah yang cukup sederhana pada prompt boot untuk menghasilkan sebarang instalasi otomatis khusus yang kompleks.

Ini diaktifkan dengan menggunakan pilihan boot Instalasi otomatis, juga disebut auto untuk beberapa arsitektur atau metode boot. Di bagian ini, auto dengan demikian bukan parameter, itu berarti memilih pilihan boot itu, dan menambahkan parameter boot berikut pada prompt boot.

Untuk mengilustrasikan ini, berikut adalah beberapa contoh yang dapat digunakan pada prompt boot:

auto url=autoserver

Ini bergantung pada adanya server DHCP yang akan membawa mesin ke titik dimana autoserver dapat diuraikan dengan DNS, mungkin setelah menambahkan domain lokal jika itu disediakan oleh DHCP. Jika ini dilakukan di situs dimana domain adalah example.com, dan mereka memiliki pengaturan DHCP yang cukup waras, itu akan mengakibatkan berkas preseed diambil dari http://autoserver.example.com/d-i/bookworm/./preseed.cfg.

Bagian terakhir dari url itu (d-i/bookworm/./preseed.cfg) diambil dari auto-install/defaultroot. Secara baku ini termasuk direktori bookworm untuk memungkinkan versi mendatang menentukan nama kode mereka sendiri dan membiarkan orang bermigrasi ke depan dengan cara yang terkontrol. Bagian /./ digunakan untuk menunjukkan root, relatif terhadap path selanjutnya yang dapat ditambatkan (untuk digunakan dalam preseed/include dan preseed/run). Hal ini memungkinkan berkas untuk ditentukan baik sebagai URL lengkap, path yang dimulai dengan / yang dengan demikian berlabuh, atau bahkan path relatif terhadap lokasi di mana berkas preseed terakhir ditemukan. Ini dapat digunakan untuk membangun skrip yang lebih portabel dimana seluruh hierarki skrip dapat dipindahkan ke lokasi baru tanpa merusaknya, misalnya menyalin berkas ke flash disk USB ketika mereka mulai di server web. Dalam contoh ini, jika berkas preseed mengatur preseed/run ke /scripts/late_command.sh maka berkas akan diambil dari http://autoserver.example.com/d-i/bookworm/./scripts/late_command.sh.

Jika tidak ada infrastruktur DHCP atau DNS lokal, atau jika Anda tidak ingin menggunakan path baku untuk preseed.cfg, Anda masih dapat menggunakan url eksplisit, dan jika Anda tidak menggunakan elemen /./ itu akan ditambatkan ke awal path (yaitu / ketiga di URL). Berikut adalah contoh yang membutuhkan dukungan minimal dari infrastruktur jaringan lokal:

auto url=http://192.168.1.2/path/to/mypreseed.file

Cara kerjanya adalah:

  • jika URL tidak memiliki protokol, http diasumsikan,

  • jika bagian nama host tidak berisi titik, ia memiliki domain yang berasal dari DHCP yang ditambahkan kepadanya, dan

  • jika tidak ada / setelah nama host, maka path baku ditambahkan.

Selain menentukan url, Anda juga dapat menentukan pengaturan yang tidak secara langsung mempengaruhi perilaku debian-installer itu sendiri, tetapi dapat diteruskan ke skrip yang ditentukan menggunakan preseed/run dalam berkas preseed yang dimuat. Saat ini, satu-satunya contoh dari ini adalah auto-install/classes, yang memiliki alias classes. Maka ini dapat digunakan:

auto url=example.com classes=class_A;class_B

Kelas misalnya dapat menunjukkan jenis sistem yang akan dipasang, atau pelokalan yang akan digunakan.

Tentu saja dimungkinkan untuk memperluas konsep ini, dan jika Anda melakukannya, masuk akal untuk menggunakan namespace instalasi otomatis untuk ini. Jadi seseorang mungkin memiliki sesuatu seperti auto-install/style yang kemudian digunakan dalam skrip Anda. Jika Anda merasa perlu melakukan ini, sebutkan di milis sehingga kami dapat menghindari konflik namespace, dan mungkin menambahkan alias untuk parameter bagi Anda.

Pilihan boot auto belum didefinisikan pada semua arsitektur. Efek yang sama dapat dicapai hanya dengan sekadar menambahkan dua parameter auto=true priority=critical ke baris perintah kernel. Parameter kernel auto adalah alias untuk auto-install/enable dan mengaturnya ke true menunda pertanyaan lokal dan papan ketik sampai setelah ada kesempatan untuk mem-preseed mereka, sedangkan priority adalah alias untuk debconf/priority dan mengaturnya ke critical menghentikan pertanyaan apa pun dengan prioritas yang lebih rendah untuk ditanyakan.

Opsi tambahan yang mungkin menarik saat mencoba mengotomatiskan instalasi saat menggunakan DHCP adalah: interface=auto netcfg/dhcp_timeout=60 yang membuat mesin memilih NIC pertama yang layak dan lebih sabar untuk mendapatkan balasan atas kueri DHCP-nya.

[Tip] Tip

Contoh ekstensif tentang cara menggunakan kerangka kerja ini, termasuk contoh skrip dan kelas, dapat ditemukan di situs web pengembangnya. Contoh yang tersedia di sana juga menunjukkan banyak efek bagus lainnya yang dapat dicapai dengan penggunaan prakonfigurasi secara kreatif.

B.2.4. Alias-alias yang berguna dengan preseed

Alias berikut dapat berguna saat menggunakan preseed (mode auto). Perhatikan bahwa ini hanyalah alias pendek untuk nama pertanyaan, dan Anda selalu perlu menentukan nilai juga: misalnya, auto=true atau 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. Contoh preseed prompt boot

Berikut adalah beberapa contoh bagaimana prompt boot mungkin terlihat seperti (Anda perlu menyesuaikan ini dengan kebutuhan Anda).

# Untuk mengatur bahasa Prancis sebagai bahasa dan Prancis sebagai negara:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=fr country=FR --- quiet
# Untuk mengatur bahasa Inggris sebagai bahasa dan Jerman sebagai negara,
# dan menggunakan tata letak papan tik Jerman:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US. UTF-8 keymap=de --- quiet
# Untuk memasang desktop MATE:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet
# Untuk memasang tugas server web:
/install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---

B.2.6. Menggunakan server DHCP untuk menentukan berkas prakonfigurasi

Anda juga dapat menggunakan DHCP untuk menentukan berkas prakonfigurasi yang akan diunduh dari jaringan. DHCP memungkinkan menentukan nama berkas. Biasanya ini adalah berkas ke netboot, tetapi jika tampaknya menjadi URL maka media instalasi yang mendukung preseed jaringan akan mengunduh berkas dari URL dan menggunakannya sebagai berkas prakonfigurasi. Berikut adalah contoh cara mengaturnya di dhcpd.conf untuk versi 3 dari server DHCP ISC (paket Debian isc-dhcp-server).

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

Perhatikan bahwa contoh di atas membatasi nama berkas ini untuk klien DHCP yang mengidentifikasi diri mereka sebagai d-i, sehingga tidak akan mempengaruhi klien DHCP biasa, tetapi hanya pemasang. Anda juga dapat menempatkan teks dalam bait hanya untuk satu host tertentu agar menghindari mem-preseed semua instalasi di jaringan Anda.

Cara yang baik untuk menggunakan preseed DHCP adalah dengan hanya preseed nilai khusus untuk jaringan Anda, seperti mirror Debian yang akan digunakan. Dengan cara ini instalasi di jaringan Anda akan secara otomatis memilih cermin yang baik, tetapi sisa instalasi dapat dilakukan secara interaktif. Menggunakan preseed DHCP untuk sepenuhnya mengotomatisasi instalasi Debian hanya boleh dilakukan dengan hati-hati.



[19] Pemilik variabel debconf (atau templat) biasanya adalah nama paket yang berisi templat debconf yang sesuai. Untuk variabel yang digunakan dalam pemasang itu sendiri pemiliknya adalah d-i. Templat dan variabel dapat memiliki lebih dari satu pemilik yang membantu menentukan apakah mereka dapat dihapus dari basis data debconf jika paket dibersihkan.