preseed.cfg mengabaikan pengaturan nama host

13

Saya menginstal Debian Wheezy (netinstall) di VirtualBox menggunakan preseed.cfg.

Saya mencoba keduanya d-i netcfg/get_hostname string somehostdan d-i netcfg/get_hostname string somehost, tetapi dalam kedua kasus tuan rumah ditetapkan sebagai "debian". Saya mencoba keduanya pada saat yang sama tetapi tuan rumah masih ditetapkan sebagai "debian".

Kutipan dari panduan Debian tentang file prakonfigurasi :

Jika Anda ingin memaksakan nama host, terlepas dari apa server DHCP kembali atau apa entri DNS terbalik untuk IP, batalkan komentar dan sesuaikan baris berikut

di netcfg / hostname string somehost

Apakah ini bug atau saya hanya sial?

ToddM
sumber

Jawaban:

10

Bukan solusi tetapi solusi

Saya juga telah menghadapi masalah yang sama dan saya mengatasinya dengan menetapkan nama host setelah instalasi melalui baris berikut ditambahkan di akhir saya pressed.cfg:

d-i pressed/late_command string\
    in-target /bin/bash -c 'echo desired_name > /etc/hostname'

Ini in-targetdiperlukan agar /merujuk ke sistem file target (yang akhirnya akan menjadi sistem file root Anda) yang biasanya muncul seperti /targetsaat instalasi.

Joseph R.
sumber
1
Saya juga telah menggunakan ini tapi dengan sedikit modifikasi sehingga nama host diatur secara otomatis dari lookup DNS: d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Ini menggunakan "facter" dari puppetlabs untuk mendapatkan alamat IP tetapi Anda bisa melakukan hal serupa menggunakan ip addrdan sed.
David Gardner
9

Jika Anda netbooting (dengan PXE dan teman-teman), nama host sudah diatur sebelum mengambil file preseed, jadi nama host harus diatur pada baris perintah kernel seperti ini:

hostname=myhostname domain=mydomain

Dari pengantar lampiran B (tentang preseeding) dari manual installer-debian:

Perbedaan penting antara metode preseeding adalah titik di mana file prakonfigurasi dimuat dan diproses. Untuk preseeding initrd ini tepat di awal instalasi, bahkan sebelum pertanyaan pertama diajukan. Untuk preseeding file ini adalah setelah gambar CD atau CD telah dimuat. Untuk preseeding jaringan hanya setelah jaringan dikonfigurasikan.

pseudorandom
sumber
4

Saya menemukan bahwa masalah ini hilang ketika saya menghapus priority=criticaldari argumen yang saya lewati ke kernel pada baris perintah instal net (melalui entri direktori pxelinux.cfg).

Saya berasumsi ini berarti bahwa pertanyaan yang menanyakan nama host telah diberikan prioritas yang lebih rendah dari 'kritis', dan akan dipenuhi dengan jawaban default.

Jika Anda melakukan perubahan ini, Anda mungkin menemukan bahwa Anda harus melakukan preseed beberapa jawaban lain yang kurang penting untuk pertanyaan lain di kemudian hari dalam proses instalasi ...

Tim Small
sumber
3

Ini batasan debian-installer. Pada saat Anda mengambil file konfigurasi yang telah dipreparasi dari jaringan, netcfgtelah melakukan tugasnya dan hilang, sehingga tidak akan mengambil kembali nilai.

kludge yang agak resmi digunakan di preseed.cfgbaris Anda :

d-i preseed/run string http://example.net/d-i/jessie/preseed.sh

dan preseed.shkemudian tentukan:

#!/bin/sh
kill-all-dhcp; netcfg

Dengan begitu, ketika jaringan didirikan dan preseed.cfgdiambil, preseed.shjuga akan mengambil dan menjalankan, sehingga akan restart netcfgyang kemudian akan membaca semua nilai Preseed untuk netcfg/*dan mengkonfigurasi dengan benar ( /etc/hostsname, /etc/hosts, /etc/network/interfacesjika Anda pengaturan sedang statis IP konfigurasi melalui Preseed dll)

Matija Nalis
sumber
Anda dapat melakukan ini tanpa file terpisah: d-i preseed/early_command string kill-all-dhcp; netcfgdalam file preseed Anda sudah cukup. Diuji dengan Peregangan di netinstall otomatis.
scy