Pesquisa de site

Instale várias distribuições Linux usando inicialização de rede PXE no RHEL/CentOS 8


Servidor PXEPreboot eXecution Environment é uma arquitetura cliente-servidor padronizada que instrui um sistema cliente a inicializar, executar ou instalar vários sistemas operacionais Linux usando uma interface de rede compatível com PXE. em sua infraestrutura de rede.

Requisitos

    • Instalação do servidor mínimo CentOS 8
    • Instalação do servidor mínimo RHEL 8
    • Configurar endereço IP estático no RHEL/CentOS 8

Neste artigo, você aprenderá como instalar e configurar um servidor de inicialização de rede PXE no CentOS/RHEL 8 com repositórios de instalação locais espelhados fornecidos pelo CentOS 8 e imagens ISO do RHEL 8.

Para esta configuração de inicialização de rede PXE, instalaremos os seguintes pacotes no sistema:

  • DNSMASQ – um encaminhador de DNS leve que fornece serviços de DNS e DHCP com suporte para PXE e um Servidor TFTP.
  • Syslinux – um gerenciador de inicialização Linux que fornece carregadores de inicialização para inicialização pela rede.
  • Servidor TFTP – um protocolo simples de transferência de arquivos que cria imagens inicializáveis disponíveis para download através de uma rede.
  • VSFTPD Server – um protocolo seguro de transferência de arquivos que hospedará a imagem de DVD espelhada montada localmente – que atuará como um repositório oficial de instalação de espelho RHEL/CentOS 8 de onde o instalador retirará os pacotes necessários.

Etapa 1: instalar e configurar o servidor DNSMASQ

1. É importante lembrar que uma de suas interfaces de rede deve ser configurada com um endereço IP estático do mesmo intervalo de IP de rede que fornece serviços PXE.

Depois de configurar um endereço IP estático, atualize os pacotes de software do sistema e instale o daemon DNSMASQ.

dnf install dnsmasq

2. Uma vez instalado o DNSMASQ, você encontrará seu arquivo de configuração padrão no diretório /etc/dnsmasq.conf, que é autoexplicativo, mas mais difícil de configurar, devido às suas explicações altamente comentadas.

Primeiro, certifique-se de fazer um backup deste arquivo caso precise revisá-lo mais tarde e, em seguida, crie um novo arquivo de configuração usando seu editor favorito, conforme mostrado.

mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

3. Agora, copie e cole as seguintes configurações no arquivo /etc/dnsmasq.conf e altere os parâmetros de configuração de acordo com suas configurações de rede.

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

As instruções de configuração que você precisa alterar são seguidas:

  • interface – Uma interface de rede do servidor deve escutar e fornecer serviços.
  • bind-interfaces – Remova o comentário para vincular a interface a uma determinada placa de rede.
  • domínio – Substitua pelo seu nome de domínio.
  • dhcp-range – Altere-o com o intervalo de IP da sua rede.
  • dhcp-boot – Substitua-o pelo endereço IP da sua interface de rede.
  • dhcp-option=3,192.168.1.1 – Substitua-o pelo gateway da sua rede.
  • dhcp-option=6,92.168.1.1 – Substitua pelo IP do seu servidor DNS.
  • server=8.8.4.4 – Adicione os endereços IP dos encaminhadores de DNS.
  • dhcp-option=28,10.0.0.255 – Substitua-o opcionalmente pelo seu endereço IP de transmissão de rede.
  • dhcp-option=42,0.0.0.0 -Adicione seus servidores de horário de rede (o endereço 0.0.0.0 é para auto-referência).
  • pxe-prompt – Mantenha-o como padrão.
  • pxe=service – Use x86PC para arquiteturas de 32/64 bits e adicione um prompt de descrição de menu entre aspas.
  • enable-tftp – Ativa o servidor TFTP integrado.
  • tftp-root – Adicione o local dos arquivos de inicialização de rede /var/lib/tftpboot.

Para outras opções avançadas relacionadas aos arquivos de configuração, sinta-se à vontade para ler o manual do dnsmasq.

Etapa 2: Instale os carregadores de inicialização SYSLINUX

4. Após a configuração principal do DNSMASQ, instale o pacote do bootloader Syslinx PXE usando o seguinte comando.

dnf install syslinux

5. Os bootloaders Syslinx PXE são instalados em /usr/share/syslinux, você pode confirmar isso executando o comando ls conforme mostrado.

ls /usr/share/syslinux

Etapa 3: Instale o servidor TFTP e copie-o com bootloaders SYSLINUX

6. Agora, instale o TFTP-Server e copie todos os bootloaders Syslinux de /usr/share/syslinux/ para /var/lib /tftpboot conforme mostrado.

dnf install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

Etapa 4: configurar o arquivo de configuração do servidor PXE

7. Por padrão, o Servidor PXE lê sua configuração a partir de um conjunto de arquivos específicos encontrados em pxelinux.cfg, que deve ser encontrado no diretório descrito na configuração tftp-root do arquivo de configuração DNSMASQ acima.

Primeiro, crie um diretório pxelinux.cfg e crie um arquivo default emitindo os seguintes comandos.

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. Agora abra e edite o arquivo de configuração PXE default com as opções corretas de instalação da distribuição Linux. Além disso, lembre-se de que os caminhos definidos neste arquivo devem ser relativos ao diretório /var/lib/tftpboot.

nano /var/lib/tftpboot/pxelinux.cfg/default

A seguir está um exemplo de arquivo de configuração que você pode usar, mas certifique-se de alterar as imagens de instalação, protocolos e IPs para refletir os repositórios e locais de origem de instalação da rede de acordo.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 8 x64 with Local Repo
kernel centos8/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount

label 2
menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
kernel centos8/vmlinuz
append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
kernel centos8/vmlinuz
append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Na configuração acima, você pode notar que as imagens de inicialização do CentOS 8 (kernel e initrd) residem em um centos7 > diretório relativo a /var/lib/tftpboot (ou seja, /var/lib/tftpboot/centos7) e os repositórios do instalador podem ser acessados usando o protocolo FTP em 192.168.1.2/pub (endereço IP do servidor PXE).

Além disso, o rótulo do menu 2 descreve os repositórios espelhados das fontes de instalação oficiais do CentOS 8 (a conexão com a Internet é obrigatória no sistema cliente) e o rótulo do menu 3 descreve que a instalação do cliente deve ser feita através de um VNC remoto (substitua aqui a senha do VNC por uma senha forte).

Importante: como você pode ver na configuração acima, usamos a imagem do CentOS 8 para fins de demonstração, mas você também pode usar o Imagens RHEL 8.

Etapa 5: adicionar imagens de inicialização do CentOS 8 ao servidor PXE

9. Para adicionar imagens do CentOS 8 ao servidor PXE, você precisa baixar a imagem ISO do DVD do CentOS 8 localmente usando o comando wget e montá-la.

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. Depois de baixar o CentOS 8, você precisa criar um diretório centos8 e copiar o kernel inicializável e as imagens initrd.

mkdir /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8

A razão por trás dessa abordagem é que mais tarde você pode ter diretórios separados para cada nova distribuição Linux em /var/lib/tftpboot sem bagunçar toda a estrutura de diretórios.

Etapa 6: Criar fonte de instalação do espelho local CentOS 8

11. Há vários protocolos (HTTP, HTTPS ou NFS) disponíveis para configuração Espelhos de origem de instalação local do CentOS 8, mas escolhi o protocolo FTP porque é fácil de configurar usando o servidor vsftpd.

Vamos instalar o servidor Vsftpd e copiar todo o conteúdo do DVD do CentOS 8 para o diretório FTP /var/ftp/pub conforme mostrado.

dnf install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

12. Agora que toda a configuração do servidor PXE foi concluída, você pode iniciar, ativar e verificar o status dos servidores DNSMASQ e VSFTPD.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

13. Em seguida, você precisa abrir portas no seu firewall para que os sistemas clientes acessem e inicializem a partir do servidor PXE.

firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. Para verificar o local da rede da fonte de instalação FTP, abra seu navegador e digite o endereço IP do servidor PXE com o protocolo FTP seguido do local da rede /pub.

ftp://192.168.1.2/pub

Etapa 7: configurar clientes para inicializar pela rede

15. Agora configure os sistemas clientes para inicializar e instalar o CentOS 8 em seus sistemas configurando Network Boot como dispositivo de inicialização principal no menu do BIOS.

Após a inicialização do sistema, você receberá um prompt PXE, onde deverá pressionar a tecla F8 para entrar na apresentação e, em seguida, pressionar a tecla Enter para prosseguir para o menu PXE.

Isso é tudo para configurar um servidor PXE mínimo no CentOS/RHEL 8.