Red Hat Training

A Red Hat training course is available for RHEL 8

8.3.2. Configuração de um servidor TFTP para clientes baseados em BIOS

Use este procedimento para configurar um servidor TFTP e DHCP e iniciar o serviço TFTP no servidor PXE para sistemas AMD e Intel de 64 bits baseados em BIOS.

Importante

Todos os arquivos de configuração nesta seção são exemplos. Os detalhes de configuração variam e dependem da arquitetura e dos requisitos específicos.

Procedimento

  1. Como raiz, instale os seguintes pacotes. Se você já tem um servidor DHCP configurado em sua rede, exclua os pacotes dhcp-server:

    # yum instalar tftp-server dhcp-server
  2. Permitir conexões de entrada para o tftp service no firewall:

    # firewall-cmd --add-service=tftp
    Nota
    • Este comando permite o acesso temporário até o próximo reinício do servidor. Para permitir o acesso permanente, adicione a opção --permanent ao comando.
    • Dependendo da localização do arquivo ISO de instalação, você pode ter que permitir conexões de entrada para HTTP ou outros serviços.
  3. Configure seu servidor DHCP para usar as imagens de inicialização empacotadas com SYSLINUX como mostrado no arquivo /etc/dhcp/dhcpd.conf do exemplo a seguir. Observe que se você já tiver um servidor DHCP configurado, então execute esta etapa no servidor DHCP.

    option space pxelinux;
    option pxelinux.magic code 208 = string;
    option pxelinux.configfile code 209 = text;
    option pxelinux.pathprefix code 210 = text;
    option pxelinux.reboottime code 211 = unsigned integer 32;
    option architecture-type code 93 = unsigned integer 16;
    
    subnet 10.0.0.0 netmask 255.255.255.0 {
    	option routers 10.0.0.254;
    	range 10.0.0.2 10.0.0.253;
    
    	class "pxeclients" {
    	  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    	  next-server 10.0.0.1;
    
    	  if option architecture-type = 00:07 {
    	    filename "uefi/shim.efi";
    	    } else {
    	    filename "pxelinux/pxelinux.0";
    	  }
    	}
    }
  4. Acesse o arquivo pxelinux.0 do pacote SYSLINUX no arquivo de imagem ISO do DVD Binário, onde my_local_directory é o nome do diretório que você cria:

    # montagem -t iso9660 /caminho_para_imagem/nome_da_imagem.iso /ponto_de_montagem -o loop,ro
    # cp -pr /mount_point/BaseOS/Packages/syslinux-tftpboot-version-architecture.rpm /my_local_directory
    # umount /mount_point
  5. Extrair o pacote:

    # rpm2cpio syslinux-tftpboot-version-architecture.rpm | cpio -dimv
  6. Crie um diretório pxelinux/ em tftpboot/ e copie todos os arquivos do diretório para o diretório pxelinux/:

    # mkdir /var/lib/tftpboot/pxelinux
    # cp my_local_directory/tftpboot/* /var/lib/tftpboot/pxelinux
  7. Crie o diretório pxelinux.cfg/ no diretório pxelinux/:

    # mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
  8. Adicione um arquivo de configuração padrão ao diretório pxelinux.cfg/, como mostrado no exemplo a seguir:

    default vesamenu.c32
    prompt 1
    timeout 600
    
    display boot.msg
    
    label linux
      menu label ^Install system
      menu default
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img ip=dhcp inst.repo=http://10.32.5.1/RHEL-8.1/x86_64/iso-contents-root/
    label vesa
      menu label Install system with ^basic video driver
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.32.5.1/RHEL-8.1/x86_64/iso-contents-root/
    label rescue
      menu label ^Rescue installed system
      kernel images/RHEL-8.1/vmlinuz
      append initrd=images/RHEL-8.1/initrd.img rescue
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    Nota
    • O programa de instalação não pode inicializar sem sua imagem em tempo de execução. Use a opção de inicialização inst.stage2 para especificar a localização da imagem. Alternativamente, você pode usar a opção inst.repo= para especificar a imagem, bem como a fonte de instalação.
    • O local da fonte de instalação utilizado com inst.repo deve conter um arquivo .treeinfo válido.
    • Quando você seleciona o DVD de instalação RHEL8 como fonte de instalação, o arquivo .treeinfo aponta para os repositórios BaseOS e AppStream. Você pode usar uma única opção inst.repo para carregar os dois repositórios.
  9. Criar um subdiretório para armazenar os arquivos de imagem de inicialização no diretório /var/lib/tftpboot/, e copiar os arquivos de imagem de inicialização para o diretório. Neste exemplo, o diretório é /var/lib/tftpboot/pxelinux/images/RHEL-8.1/:

    # mkdir -p /var/lib/tftpboot/pxelinux/images/RHEL-8.1/
    # cp /path_to_x86_64_images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/images/RHEL-8.1/
  10. No servidor DHCP, inicie e habilite o serviço dhcpd. Se você tiver configurado um servidor DHCP no localhost, então inicie e ative o serviço dhcpd no localhost.

    # systemctl start dhcpd
    # systemctl enable dhcpd
  11. Inicie e habilite o serviço tftp.socket:

    # systemctl start tftp.socket
    # systemctl enable tftp.socket

    O servidor de inicialização PXE está agora pronto para atender os clientes PXE. Você pode iniciar o cliente, que é o sistema para o qual você está instalando o Red Hat Enterprise Linux, selecionar PXE Boot quando solicitado a especificar uma fonte boot, e iniciar a instalação da rede.