Como configurar o Cobbler com o PXE se você não puder alterar o servidor dhcp?

14

No passado, configurei um servidor PXE várias vezes, fazendo com que o servidor dhcp normal retornasse tudo o que era necessário para a inicialização pela rede: tanto o ip default config AND bootinfo em uma única configuração dhcp. Dessa forma, é fácil de fazer .

De acordo com a documentação que li ( a wikipedia tem um bom resumo ) deve ser possível ter uma versão não modificada servidor dhcp (por exemplo, se o administrador do seu local negar acesso) e um servidor separado que SÓ devolve as informações de inicialização. Isso geralmente é chamado de servidor "PXE server" ou "Proxy DHCP". No passado eu vi (não usei) este servidor pxe (o último lançamento foi feito há 5 anos).

Ontem eu instalei o Cobbler para ver o que ele realmente faz. Agora eu gostaria de usá-lo (adoro a facilidade de uso), mas modificar o servidor 'principal' do dhcpd para obter o PXE não é uma opção.

Eu não consegui encontrar nenhuma documentação sobre como executar o cobbler usando um servidor PXE (== proxy dhcp) real.

Isso pode ser feito com o sapateiro?

Posso configurar o servidor isc dhcp para se comportar como um servidor PXE (ou seja, sem informações de ip, apenas informações de inicialização)?

Ou devo optar por uma abordagem completamente diferente (em caso afirmativo, qual é a sua sugestão)?

Obrigado

Nova descoberta que acabei de fazer: O changelog para dnsmasq versão 2.4.8 diz:

"Proxy-DHCP, where dnsmasq just supplies the PXE information and another DHCP server does address allocation, is also allowed."

MUITO INTERESSANTE. Especialmente porque o sapateiro já pode controlar o dnsmasq.

Atualização:

O dnsmasq 2.51 suportará esta configuração que faz o truque que eu queria.

Meu /etc/cobbler/dnsmasq.template agora se parece com isto:

# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

# Be a proxyDHCP server
dhcp-range=10.10.0.0,proxy

# Only respond to clients that are known (i.e present in /etc/ethers)
dhcp-ignore=#known

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts
domain=test.basjes.nl,10.10.15.0

# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
pxe-service=x86PC, "Boot PXELinux (=Cobbler controlled)", pxelinux ,$next_server

$insert_cobbler_system_definitions

Atualização: 2012-04-30

Há alguns meses, recebi um e-mail de alguém dizendo que ele não poderia fazer o trabalho acima funcionar. Acontece que eu tinha feito alguma fixação e troca do meu próprio sapateiro que eu havia esquecido. Então eu forneci a correção crucial para o cobbler mainline que acabou de se tornar parte do trunk. Eu também criei algumas documentação adicional .

    
por Niels Basjes 12.08.2009 / 10:22

3 respostas

3

O que fazemos, é montar um arquivo ISO que criamos, inicializar um kernel e initrd a partir dele e fazer com que ele carregue um kickstart a partir de um local central. Este arquivo de kickstart, em seguida, aponta para um repositório com arquivos RPM, que poderia ser seu servidor cobbler.

Eu não tenho muita experiência com o Cobbler (infelizmente), mas talvez isso seja uma opção para você?

    
por 17.08.2009 / 10:44
5

A ROM PXE precisa de uma diretiva "next-server" do servidor DHCP para encontrar e carregar o gerenciador de inicialização (seja ele o grub, o pxelinux ou qualquer outro gerenciador de inicialização). Se um "próximo servidor" não for fornecido, cabe à ROM do PXE decidir o que fazer. Você terá que olhar para a configuração da sua placa de rede e ver se há uma opção para talvez especificar o servidor manualmente.

Como foi observado pela resposta acima, usar um ISO ou USB Stick personalizado para inicializar a máquina, com todas as informações já fornecidas na linha de comando do kernel, é provavelmente o melhor caminho a seguir. Se você não tem acesso à configuração do servidor DHCP.

    
por 17.08.2009 / 12:01
1

Se você quiser apenas executar alguns testes, poderá ter vários servidores dhcp na mesma rede. você pode ter o cobbler criando uma configuração dhcpd que irá dizer a um servidor apenas para responder quando um determinado MAC estiver fazendo uma requisição ARP. e se você simplesmente comentar / desabilitar quaisquer intervalos nesse servidor (e eu estou falando sobre o isc-dhcpd aqui), ele não será intrusivo. Você pode obter algumas caixas de janelas reclamando (em transmissões) sobre este servidor dhcp ser não-autoritativo se você estiver usando o AD e tal, mas fora isso eu não acho que haja muito perigo.

Mas a melhor maneira é ter o cobbler / dhcp e os servidores que você está tentando provisionar em uma VLAN separada do resto da sua rede. Dessa forma, você limita seu domínio de transmissão e nenhuma outra caixa verá seus anúncios do dhcp.

    
por 06.11.2009 / 06:17