Também é possível configurar um serviço DHCP Proxy para o PXE. Assim, o servidor DHCP existente não precisa ser alterado. Um sistema Linux normal (por exemplo, uma estação de trabalho) pode ser usado para hospedar o ambiente de execução de pré-inicialização (PXE).
As seguintes etapas são necessárias para configurar um PXE para inicialização via rede Imagem de instalação de rede do Fedora (assumindo também um Fedora host):
Verifique a imagem
$ gpg --verify Fedora-Server-21-x86_64-CHECKSUM
$ sha256sum --check Fedora-Server-21-x86_64-CHECKSUM
Fedora-Server-netinst-x86_64-21.iso: OK
Monte a imagem
mkdir /mnt/iso
mount -o loop Fedora-Server-netinst-x86_64-21.iso /mnt/iso
Configuração do DHCP
yum install dnsmasq tftp-server syslinux-tftpboot
O pacote tftp-server
é apenas para criar o diretório /var/lib/tftpboot
, o dnsmasq já tem um servidor tftp integrado.
A configuração:
cat > /etc/dnsmasq.conf
interface=enp0s25
# and don't bind to 0.0.0.0
bind-interfaces
# extra logging
log-dhcp
dhcp-range=192.168.178.0,proxy
# first IP address is the one of the host
dhcp-boot=pxelinux.0,192.168.178.34,192.168.178.0
pxe-service=x86PC,"Automatic Network Boot",pxelinux
# Specify the IP address of another tftp server
enable-tftp
# default location of tftp-server on Fedora
tftp-root=/var/lib/tftpboot
# disable DNS
port=0
Comece:
systemctl start dnsmasq.service
Configurar o diretório TFTP
Copie todos os arquivos necessários:
cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot
cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /tftpboot/pxelinux.0 /var/lib/tftpboot
cp /tftpboot/vesamenu.c32 /var/lib/tftpboot
cp /tftpboot/ldlinux.c32 /var/lib/tftpboot
cp /tftpboot/libcom32.c32 /var/lib/tftpboot
cp /tftpboot/libutil.c32 /var/lib/tftpboot
Adicionar configuração:
mkdir /var/lib/tftpboot/pxelinux.cfg
cat > /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
prompt 0
# disable timeout
timeout 0
#timeout 600
# if file is missing, this is ignored
display boot.msg
label linux
menu label Install Fedora 21 Server x86-64
kernel vmlinuz
append initrd=initrd.img inst.stage2=http://workstation.example.org/
Configurar o servidor HTTP
yum install nginx
Configurar instância:
cat > /etc/nginx/conf.d/iso.conf
server {
listen 80 default_server;
server_name localhost;
root /mnt/iso ;
include /etc/nginx/default.d/*.conf;
}
Desative a instância padrão / mova-a para uma porta diferente:
--- a/nginx/nginx.conf
+++ b/nginx/nginx.conf
@@ -43,7 +43,7 @@ http {
include /etc/nginx/conf.d/*.conf;
server {
- listen 80 default_server;
+ listen 8080 default_server;
server_name localhost;
root /usr/share/nginx/html;
inicie o servidor:
systemctl start nginx.service
O instalador do Fedora (dracut) basicamente precisa apenas pegar um arquivo daquele servidor http:
LiveOS/squashfs.img
Configurar o Firewalld
firewall-cmd --add-service=http
firewall-cmd --add-service=dhcp
firewall-cmd --add-service=tftp
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --add-service=tftp --permanent
Clientes de inicialização
É isso. Os clientes são capazes de inicializar em rede via PXE e obter a imagem da netinstall do Fedora.
As variações podem ser: Adicionar um arquivo de kickstart (e definir um tempo limite) para uma instalação de rede totalmente automática, configurando diferentes configurações de PXE para diferentes clientes (com base no endereço MAC), etc.
Limpeza
Os daemons podem ser parados e a imagem de loopback pode ser desmontada:
systemctl stop nginx.service
systemctl stop dnsmasq.service
umount /mnt/iso
Nota de segurança
Este método só deve ser executado em uma intranet confiável, porque o cliente netboot obtém sua configuração e várias imagens absolutamente inseguras sobre TFTP e HTTP.