No
artigo anterior comentamos como podemos automatizar a instalação de vários servidores utilizando kickstarts dinâmicos, entretanto ainda era preciso utilizar uma mídia bootável para inicializar o processo de instalação.
Nesse artigo entenderemos como montar um servidor de instalação utilizando o
PXE (Pre-boot eXecution Environment) e integrando-o com kickstarts já criados anteriormente.
Dividiremos esse post em 3 etapas, que na verdade são os 3 sub-sistemas envolvidos na configuração de um servidor de instalação PXE: DHCP, TFTP-SERVER, FILE SHARE.
Configurando DHCP Server
Para quem desconhece a sigla
DHCP (Dynamic Host Configuration Protocol), saiba que muito provavelmente você já tenha utilizado esse serviço sem perceber. O serviço de DHCP (resumindo de maneira bem coloquial) é muito útil quando o cliente não sabe qual IP configurar em sua estação e passa a pedir essa informação à um servidor de endereços IP, que irá processar o pedido informando ao cliente qual endereçamento correto para aquele segmento de rede.
Uma informação que acaba passando despercebida quanto ao serviço de DHCP é que ele não serve somente para informar o endereço IP, mas também máscara de rede, roteador padrão, sufixo de pesquisa de DNS (domínio), servidores de DNS, servidores de NTP, servidores NetBios e também servidores TFTP (Trivial File Transfer Protocol).
A informação de TFTP server por sua vez será usada pelo cliente para fazer o download do bootloader, kernel e initrd para inicializar o processo de instalação. Mas isso é um assunto para a próxima parte deste texto. Por enquanto vamos nos concentrar na configuração do DHCP.
Vamos começar instalando o serviço de DHCP em nosso servidor.
# rpm -q dhcp
dhcp-4.1.1-9.fc12.x86_64
Uma vez instalado, precisamos definir em seu arquivo de configuração localizado em
/etc/dhcp/dhcpd.conf (em outros distribuições esse arquivo geralmente está em
/etc/dhcpd.conf). Se você prestar atenção, o arquivo padrão irá sugerir que você visite o diretório de documentação do serviço para utilizar um arquivo de exemplo.
Utilizando o arquivo de documentação, deixe-o com essa aparência:
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:00:73:59:6E
inet addr:192.168.240.10 Bcast:192.168.240.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe73:596e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22239 errors:0 dropped:0 overruns:0 frame:0
TX packets:15888 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22604353 (21.5 MiB) TX bytes:2421924 (2.3 MiB)
# cat /etc/dhcp/dhcpd.conf
authoritative;
ddns-update-style none;
subnet 192.168.240.0 netmask 255.255.255.0 {
range 192.168.240.50 192.168.240.100;
option domain-name-servers 192.168.240.1;
option domain-name "blog.tchello.mello";
option routers 192.168.240.1;
option broadcast-address 192.168.240.1;
default-lease-time 600;
max-lease-time 7200;
}
host inst-automatico {
hardware ethernet 52:54:00:24:4d:78;
fixed-address 192.168.240.49;
filename "pxelinux.0";
next-server 192.168.240.10;
}
# cat /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=eth0
# chkconfig dhcpd on
Como vocês podem ver, já compilamos acima uma série de informações que precisarão ser alteradas nos arquivos de configuração. Temos o IP do servidor como 192.168.240.1. O arquivo de configuração do DHCP é muito intuitivo, porém gostaria de salientar 2 parâmetros de configuração:
- filename "pxelinux.0"; esse parâmetro irá informar ao cliente nominado como inst-automatico que possui o endereço MAC 52:54:00:24:4d:78 qual arquivo será oferecido a ele no caso de uma solicitação via TFTP.
- next-server 192.168.240.10; esse parâmetro informa ao cliente qual é o servidor TFTP disponível para o cliente inst-automatico, ou seja, o servidor que irá transmitir o arquivo pxelinux.0.
Detalhe: Colocamos essas informações dentro das chaves, sendo válidas somente à máquina inst-automatico, porém poderiam estar dentro da seção global acima do arquivo.
Alterações executadas, já estamos prontos para inicializar o serviço de DHCPD e partir para a próxima etapa.
# service dhcpd start