Saya ingin mengotomatiskan beberapa instalasi paket melalui skrip bash; mereka akan diinstal ke sistem file chroot yang sudah ada sebelumnya. Namun beberapa paket melibatkan input pengguna interaktif (yaitu ddclient meminta untuk memilih penyedia layanan DNS dinamis), yang belum dapat saya otomatisasi dengan mudah.
debconf preseeding tampaknya menjadi cara paling umum untuk mengotomatisasi instalasi paket interaktif, tetapi semua contoh yang saya baca menyiratkan bahwa itu untuk seluruh instalasi Debian daripada hanya paket individual.
Saya telah mengikuti Cara mengotomatiskan instalasi paket Debian interaktif tetapi tidak menjelaskan secara spesifik.
Terima kasih sebelumnya!
Jawaban yang Diterima:
Kurang menggunakan alat manajemen konfigurasi dan penyebaran yang “tepat” seperti Ansible atau Salt, debconf
preseeding bisa sangat memadai untuk pra-konfigurasi paket Debian. Ini sama sekali tidak terbatas pada instalasi penuh; itu dapat diterapkan ke sejumlah paket.
Cara termudah untuk memulainya adalah dengan mengkonfigurasi secara manual paket yang ingin Anda instal, dengan menginstal paket dan menjawab pertanyaan. Kemudian jalankan debconf-get-selections
(dari debconf-utils
kemasan); yang akan mencantumkan semua pengaturan yang disimpan, termasuk untuk paket yang baru saja Anda instal, bersama dengan teks pertanyaan di komentar — sehingga Anda dapat dengan mudah menemukan pertanyaan yang ingin Anda praseed. Formatnya adalah
<package> <debconf key> <type> <value>
Misalnya
# System's default paper size:
# Choices: letter, a4, note, legal, executive, halfletter, halfexecutive, 11x17, statement, folio, quarto, 10x14, ledger, tabloid, a0, a1, a2, a3, a5, a6, a7, a8, a9, a10, b0, b1, b2, b3, b4, b5, c5, DL, Comm10, Monarch, archE, archD, archC, archB, archA, flsa, flse, csheet, dsheet, esheet
libpaper1 libpaper/defaultpaper select a4
Simpan pengaturan yang ingin Anda awali dalam file, lalu jalankan debconf-set-selections
(di debconf
package) pada sistem target, baik dengan file yang tersedia secara lokal dan dinamai sebagai argumen pertama, atau isinya disalurkan:
cat preseed-file | ssh remotehost debconf-set-selections
Lakukan ini sebelum menginstal paket pada sistem target.