preseed.cfg ignorando la configuración del nombre de host

13

Estoy instalando Debian Wheezy (netinstall) en VirtualBox usando preseed.cfg.

Intenté ambos d-i netcfg/get_hostname string somehosty d-i netcfg/get_hostname string somehost, pero en ambos casos el host se configura como "debian". Intenté ambos al mismo tiempo, pero aún así el host está configurado como "debian".

Extracto de la guía de Debian sobre el archivo de preconfiguración :

Si desea forzar un nombre de host, independientemente de lo que devuelva el servidor DHCP o la entrada DNS inversa para la IP, elimine el comentario y ajuste la siguiente línea

di netcfg / hostname string somehost

¿Es esto un error o solo tengo mala suerte?

ToddM
fuente

Respuestas:

10

No es una solución sino una solución

Yo también me he enfrentado a un problema similar y lo solucioné configurando el nombre del host después de la instalación a través de las siguientes líneas agregadas al final de mi pressed.cfg:

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

El in-targetes tan necesario que el /se refiere al sistema de archivos de destino (que con el tiempo se convertirá en su sistema de ficheros raíz) que suele aparecer como /targetdurante la instalación.

Joseph R.
fuente
1
También he utilizado esto, pero con una ligera modificación para que el nombre de host se selecciona automáticamente desde una búsqueda de DNS: d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Esto usa "facter" de puppetlabs para obtener la dirección IP, pero podría hacer algo similar usando ip addry sed.
David Gardner
9

Si está iniciando en la red (con PXE y amigos), el nombre de host se configura antes de recuperar el archivo preestablecido, por lo que el nombre de host debe establecerse en la línea de comandos del kernel de la siguiente manera:

hostname=myhostname domain=mydomain

De la introducción del apéndice B (sobre la preselección) del manual del instalador de Debian:

Una diferencia importante entre los métodos de preselección es el punto en el que el archivo de preconfiguración se carga y procesa. Para la preselección initrd, esto es justo al comienzo de la instalación, incluso antes de que se haga la primera pregunta. Para la preselección de archivos, esto es después de que se haya cargado el CD o la imagen del CD. Para la preselección de red es solo después de que la red ha sido configurada.

pseudoaleatorio
fuente
4

Encontré que este problema desapareció cuando eliminé priority=critical eliminé los argumentos que estaba pasando al núcleo en la línea de comando de instalación de red (a través de las entradas del directorio pxelinux.cfg).

Supongo que esto significa que a la pregunta que le pregunta al nombre de host se le ha dado una prioridad inferior a 'crítica', por lo que se completa con la respuesta predeterminada.

Si realiza este cambio, es posible que tenga que preseleccionar algunas otras respuestas inferiores a las críticas para otras preguntas más adelante en el proceso de instalación ...

Tim Small
fuente
3

Es la limitación del instalador de Debian. En el momento en que obtiene su archivo de configuración preestablecido de la red, netcfgya ha hecho su trabajo y ya no está, por lo que no volverá a buscar valores.

kludge algo oficial es usar en su preseed.cfglínea:

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

y en eso preseed.shluego especifique:

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

De esa manera, cuando la red se establezca y preseed.cfgse recupere, preseed.shtambién se recuperará y ejecutará, por lo que se reiniciará, netcfglo que leerá todos los valores predeterminados netcfg/*y los configurará correctamente ( /etc/hostsname,/etc/hosts , /etc/network/interfacesSi va a configurar la dirección IP estática de configuración a través de preconfiguración, etc.)

Matija Nalis
fuente
Puede hacer esto sin un archivo separado: d-i preseed/early_command string kill-all-dhcp; netcfgen su archivo preseleccionado es suficiente. Probado con Stretch en un netinstall automatizado.
scy