Как запретить процессу развертывания доступ к DNS-серверу?
Я заметил, что при развертывании виртуальной машины при использовании preseed имя хоста, указанное в preseed, игнорируется и вместо него используется имя с DNS-сервера.
Подробное описание
Компьютер с Ubuntu Server развертывается с использованием:
virt-install \
--name custom-name \
--initrd-inject /some-path/preseed.cfg \
--extra-args "preseed/file=preseed.cfg" \
...
Файл preseed содержит, среди прочего, следующие строки (обратите внимание на custom-name
значение во второй строке):
...
d-i netcfg/disable_dhcp boolean true
...
d-i netcfg/get_hostname string custom-name
d-i netcfg/get_domain string pelicandd.com
d-i netcfg/get_ipaddress string 192.168.1.35
...
С другой стороны, DNS-сервер содержит запись A:
demo IN A 192.168.1.35
а также запись PTR:
35 IN PTR demo.example.com.
Как только машина создана, кажется, что /etc/hostname
содержит:
demo
и это /etc/hosts
содержит:
127.0.0.1 localhost
192.168.1.35 demo.example.com demo
Вопрос
Меня не особенно радует тот факт, что процесс развертывания обращается к DNS-серверу для получения информации. Мало того, что это занимает время, но в некоторых случаях DNS-сервер может быть недоступен (например, в случае развертывания самого DNS-сервера).
Что я должен указать в предварительном документе, чтобы запретить установщику доступ к DNS для получения информации, которая уже доступна в предварительном документе?
1 ответ
RTFM помог. Из предыдущего примера Debian:
# Any hostname and domain names assigned from dhcp take precedence over
# values set here. However, setting the values still prevents the questions
# from being shown, even if values come from dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
# If you want to force a hostname, regardless of what either the DHCP
# server returns or what the reverse DNS entry for the IP is, uncomment
# and adjust the following line.
#d-i netcfg/hostname string somehost
Который означает, что netcfg/get_hostname
не имеет значения: его единственная цель - не дать установщику задать вопрос в первую очередь.
Действительно, когда я устанавливаю значение netcfg/hostname
, и то и другое /etc/hostname
а также /etc/hosts
содержат значения, указанные в preseed, игнорируя запись DNS PTR.