J'ai remarqué que lors du déploiement d'une machine virtuelle tout en utilisant une préconfiguration, le nom d'hôte spécifié dans la préconfiguration est ignoré et celui du serveur DNS est utilisé à la place.
La machine Ubuntu Server est déployée à l'aide de:
virt-install \
--name custom-name \
--initrd-inject /some-path/preseed.cfg \
--extra-args "preseed/file=preseed.cfg" \
...
Le fichier prédéfini contient, entre autres, les lignes suivantes (notez le custom-name
valeur sur la deuxième ligne):
...
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
...
D'un autre côté, le serveur DNS contient à la fois l'enregistrement A:
demo IN A 192.168.1.35
ainsi que l'enregistrement PTR:
35 IN PTR demo.example.com.
Une fois la machine créée, il apparaît que /etc/hostname
contient:
demo
et cela /etc/hosts
contient:
127.0.0.1 localhost
192.168.1.35 demo.example.com demo
Je ne suis pas particulièrement satisfait du fait que le processus de déploiement accède au serveur DNS pour obtenir les informations. Non seulement cela prend du temps, mais dans certaines circonstances, le serveur DNS peut être arrêté (comme dans le cas où c'est le serveur DNS lui-même qui est déployé).
Que dois-je spécifier dans la préconfiguration pour empêcher l'installateur d'accéder au DNS pour récupérer des informations qui sont déjà disponibles dans la préconfiguration?
RTFM a aidé. De exemple prédéfini de 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
Ce qui signifie que netcfg/get_hostname
n'est pas pertinent: son seul but est d'empêcher l'installateur de poser la question en premier lieu.
En effet, lorsque je fixe la valeur de netcfg/hostname
, tous les deux /etc/hostname
et /etc/hosts
contient les valeurs spécifiées dans la préconfiguration, en ignorant l'enregistrement DNS PTR.