Eu tenho um servidor DHCP usado para fazer instalações autônomas do Debian: inicialize a partir do PXE e instale o sistema operacional com um preseed.
O servidor DHCP ( isc-dhcp-server
pacote do Debian) está configurado para fazer uma operação (fazer um HTTP POST) ao distribuir uma nova concessão:
subnet 192.168.0.0 netmask 255.255.252.0 {
[...]
filename "pxelinux.0";
on commit {
set client_ip = binary-to-ascii(10, 8, ".", leased-address);
execute("curl", "-X", "POST", [...])
}
}
[...]
host vmhost2 {
hardware ethernet 00:19:66:60:c3:61;
fixed-address 192.168.1.13;
}
Percebi que durante a instalação autônoma, o HTTP POST é feito duas vezes: a primeira vez alguns segundos após a inicialização da máquina (isso é esperado) e aproximadamente trinta segundos depois, quando o instalador Debian está configurando a rede.
Eu não esperava o segundo pedido. Na verdade, esta é a configuração preseed correspondente:
di netcfg/get_hostname string vmhost2 di netcfg/get_domain string pelicandd.com di netcfg/choose_interface selecione automaticamente di netcfg/disable_autoconfig boolean true di netcfg/disable_dhcp booleano verdadeiro por netcfg/dhcp_failed note di netcfg/dhcp_options selecione Configurar rede manualmente di netcfg/get_ipaddress string 192.168.1.13 di netcfg/get_netmask string 255.255.252.0 di netcfg/get_gateway string 192.168.1.1 di netcfg/get_nameservers string 192.168.1.3 192.168.1.4 8.8.8.8 8.8.4.4 di netcfg/confirm_static boolean true
Achei que a netcfg/disable_dhcp
opção indica que o instalador não deveria precisar entrar em contato com o servidor DHCP, mas mesmo assim precisa.
Perguntas:
Por que o instalador está entrando em contato com o servidor DHCP pela segunda vez, apesar das opções preseed?
Existe uma maneira de pará-lo, seja por meio de uma opção preseed ou modificando a configuração do servidor ISC DHCP para ignorar a segunda concessão?
A primeira sequência DHCP DORA (descobrir, oferecer, solicitar, aceitar) é acionada pelo firmware PXE do cliente tentando encontrar um IP/MASK e os dados PXE (localização NBP + TFTP).
O firmware PXE, em seguida, o TFTP recupera e executa o kernel+initrd correspondente. Quando este kernel começa a rodar, ele precisa de um IP/MASK, então ele aciona uma segunda sequência DHCP DORA (esta é uma solicitação DHCP regular "não-PXE")
Para evitar o segundo acerto do DHCP, você deve definir manualmente a configuração de rede estática na linha de comando "kernel" ; você não pode definir esta informação em um arquivo pressionado que deve ser recuperado pela rede porque o kernel seria forçado a usar o DHCP para obter seus serviços de rede funcionando corretamente para recuperar o arquivo preseed ... você pode ver o problema egg-chicken?
Você pode passar as variáveis preseed de rede estática correspondentes "anexadas" à linha de comando do kernel ou usar o
ipappend
comando Pxelinux.NOTA: Considere que a sintaxe das variáveis preseed é um pouco diferente quando usadas em um arquivo preseed ou em uma linha de comando do kernel, ou seja:
A final
append
deve ficar assim. Remova as quebras de linha, que são adicionadas aqui apenas para melhorar a legibilidade e evitar a rolagem horizontal.