preseed.cfg ignorando a configuração do nome do host

13

Estou instalando o Debian Wheezy (netinstall) no VirtualBox usando preseed.cfg.

Eu tentei ambos d-i netcfg/get_hostname string somehoste d-i netcfg/get_hostname string somehost, mas em ambos os casos, o host é definido como "debian". Eu tentei os dois ao mesmo tempo, mas ainda assim o host está definido como "debian".

Trecho do guia Debian sobre o arquivo de pré-configuração :

Se você deseja forçar um nome de host, independentemente do retorno do servidor DHCP ou da entrada DNS reversa do IP, remova o comentário e ajuste a seguinte linha

di netcfg / string nome do host somehost

Isso é um bug ou eu sou apenas azarado?

ToddM
fonte

Respostas:

10

Não é uma solução, mas uma solução alternativa

Eu também enfrentei um problema semelhante e resolvi o problema definindo o nome do host após a instalação através das seguintes linhas adicionadas no final do meu pressed.cfg:

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

O in-targeté necessário para que /se refira ao sistema de arquivos de destino (que eventualmente se tornará seu sistema de arquivos raiz) que geralmente aparece como /targetdurante a instalação.

Joseph R.
fonte
1
Eu também usou esta, mas com uma ligeira modificação, para que o nome de host é automaticamente definido a partir de uma pesquisa de DNS: d-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'. Isso usa "facter" dos puppetlabs para obter o endereço IP, mas você pode fazer algo semelhante usando ip addre sed.
David Gardner
9

Se você estiver inicializando na rede (com PXE e amigos), o nome do host é configurado antes de buscar o arquivo preseed; portanto, o nome do host deve ser definido na linha de comando do kernel, como segue:

hostname=myhostname domain=mydomain

Desde a introdução do apêndice B (sobre pré-configuração) do manual debian-installer:

Uma diferença importante entre os métodos de pré-configuração é o ponto em que o arquivo de pré-configuração é carregado e processado. Para pré-configuração do initrd, isso ocorre logo no início da instalação, antes mesmo da primeira pergunta ser feita. Para pré-configuração de arquivo, isso ocorre após o carregamento da imagem do CD ou CD. Para pré-configuração de rede, é somente após a configuração da rede.

pseudo-aleatório
fonte
4

Eu descobri que esse problema desapareceu quando removi priority=criticalos argumentos que estava passando para o kernel na linha de comando net install (através das entradas do diretório pxelinux.cfg).

Suponho que isso signifique que a pergunta que solicita o nome do host tenha recebido uma prioridade inferior a 'crítico' e, portanto, seja preenchida com a resposta padrão.

Se você fizer essa alteração, talvez descubra que precisa de outras respostas abaixo da crítica para outras perguntas posteriormente no processo de instalação ...

Tim Small
fonte
3

É uma limitação do debian-installer. No momento em que você busca seu arquivo de configuração preseed da rede, netcfgjá fez seu trabalho e desapareceu, para não buscar valores.

um argumento oficial é usar na sua preseed.cfglinha:

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

e preseed.shentão especifique:

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

Dessa forma, quando a rede é estabelecida e preseed.cfgé buscado, preseed.shtambém será buscar e correr, por isso vai reiniciar netcfgque irá então ler todos os valores de pré-configuração para netcfg/*e configurá-los corretamente ( /etc/hostsname, /etc/hosts, /etc/network/interfacesse você estiver configurando IP estático configuração via preseed etc)

Matija Nalis
fonte
Você pode fazer isso sem um arquivo separado: d-i preseed/early_command string kill-all-dhcp; netcfgno seu arquivo preseed é suficiente. Testado com o Stretch em uma rede automática de instalação.
scy