Configurando um servidor de instalação

Este apêndice se destina a usuários com experiência anterior em Linux. Se você for um novo usuário, convém instalar usando a mídia de inicialização mínima ou o DVD de distribuição.

Visão geral da instalação PXE

Preboot Execution Environment, ou PXE, é uma tecnologia que permite que os computadores inicializem diretamente de recursos fornecidos pela rede. Instalar o Fedora pela rede significa que você não precisa criar mídia e pode instalar em vários computadores ou máquina virtual simultaneamente. O processo envolve vários componentes e recursos trabalhando juntos para fornecer os recursos necessários.

Computador compatível com PXE

A maioria dos computadores modernos tem a capacidade de inicialização pela rede. Normalmente, uma tecla de função pressionada durante a inicialização abrirá um menu de seleção de inicialização. Em ambientes projetados para administração autônoma, os sistemas geralmente são configurados para tentar inicializar pela rede e, em seguida, inicializar do armazenamento local, e o servidor de instalação é configurado para oferecer a instalação apenas quando necessário. O manual do seu computador fornecerá instruções específicas sobre como definir as prioridades de inicialização.

Servidor DHCP

Quando um sistema solicita um endereço durante a inicialização da rede, o servidor DHCP também fornece a localização dos arquivos para inicializar. Uma rede deve ter apenas um servidor DHCP.

Servidor TFTP

Como o ambiente de pré-inicialização é muito simples, os arquivos devem ser fornecidos de uma maneira muito simples. O Trivial File Transfer Protocol, ou TFTP, fornece ao sistema o carregador de inicialização necessário para continuar o processo de instalação.

Carregador de inicialização

Como a tarefa de inicializar um sistema operacional é muito complexa para o ambiente de pré-inicialização, um carregador de inicialização é usado para carregar o kernel e arquivos relacionados. Ele também fornece informações de configuração ao instalador e pode oferecer um menu para selecionar diferentes configurações.

Kernel e initramfs

O kernel é o núcleo de qualquer sistema operacional Linux e o initramfs fornece ao kernel as ferramentas e recursos necessários. Esses arquivos também são fornecidos pelo tftp.

Repositório de pacotes

A Fedora repository must be available for the installation. The example in this section uses the public Fedora mirrors as the repository source, but you can also use a repo on the local network provided by NFS, FTP, or HTTP. Repositories can be configured using the inst.repo= boot option; see Specifying the Installation Source for details.

Configuração do Servidor DHCP

Instalando e configurando o dhcpd
  1. Instale o pacote de servidor dhcp.

    # dnf install dhcp
  2. Crie uma configuração simples para o servidor dhcp em /etc/dhcp/dhcpd.conf

    subnet 192.168.1.0 netmask 255.255.255.0 {
    authoritative;
    default-lease-time 600;
    max-lease-time 7200;
    ddns-update-style none;
    
    option domain-name-servers 192.168.1.1;
    option routers 192.168.1.1;
    
    }
  3. Teste sua configuração e resolva quaisquer problemas que encontrar.

    systemctl start dhcpd
    journalctl --unit dhcpd --since -2m --follow
  4. Adicione entradas para apontar clientes para seu gerenciador de inicialização e o servidor que fornece isso para sua configuração de sub-rede em /etc/dhcp/dhcpd.conf. Como os clientes DHCP fornecem ao servidor informações de identificação junto com sua solicitação de endereço, os clientes BIOS e os clientes UEFI podem ser direcionados ao carregador de inicialização correto.

    # refer to RFC4758 for possible arch option values
    option arch code 93 = unsigned integer 16;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
    if option arch = 00:07 {
    filename "uefi/shim.efi";
    } else {
    filename "pxelinux.0";
    }
    
    next-server 192.168.1.2;
    
    ...
  5. Reinicie o serviço dhcp para verificar a configuração e fazer as alterações necessárias.

    systemctl restart dhcpd
    journalctl --unit dhcpd --since -2m --follow

Instalando o servidor tftp

Instalando o servidor tftp
  1. Instale o pacote do servidor tftp.

    # dnf install tftp-server
  2. Inicie e habilite o soquete tftp. systemd irá iniciar automaticamente o serviço` tftpd` quando necessário.

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

Fornecimento e configuração de carregadores de inicialização para clientes PXE

Obtendo os arquivos de carregadores de inicialização
  1. Obtenha o carregador de inicialização syslinux para clientes BIOS.

    1. Instale o pacote syslinux.

      # dnf install syslinux
    2. Crie um diretório para os arquivos do carregador de inicialização e torne-os disponíveis lá.

      # mkdir -p /var/lib/tftpboot/pxelinux.cfg
      # cp /usr/share/syslinux/{pxelinux.0,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/
  2. Obtenha os arquivos do carregador de inicialização para sistemas UEFI

    1. Install the shim and grub2-efi packages. If your server is a BIOS system, you must install the packages to a temporary install root. Installing them directly on a BIOS machine will attempt to configure the system for UEFI booting and cause problems.

      # dnf install shim grub2-efi --installroot=/tmp/fedora --releasever 27
    2. Crie um diretório para os arquivos do carregador de inicialização e torne-os disponíveis lá.

      # mkdir -p /var/lib/tftpboot/uefi
      # cp /tmp/fedora/boot/efi/EFI/fedora/{shim.efi,grubx64.efi} /var/lib/tftpboot/uefi/
Configurando carregações de inicialização clientes
  1. Crie um menu de inicialização para clientes BIOS em /var/lib/tftpboot/pxelinux.cfg/default.

    +

default vesamenu.c32
prompt 1
timeout 600

label linux
menu label ^Install Fedora {PRODVER} 64-bit
menu default
kernel f{PRODVER}/vmlinuz
append initrd=f{PRODVER}/initrd.img inst.stage2=http://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp

label server
menu label ^Install Fedora {PRODVER} ( Minimal Image )
menu default
kernel f{PRODVER}/vmlinuz
append initrd=f{PRODVER}/initrd.img inst.stage2=http://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks

label rescue
menu label ^Rescue installed system
kernel f{PRODVER}/vmlinuz
append initrd=f{PRODVER}initrd.img ip=dhcp root=live:http://download.fedoraproject.org/pub/fedora/linux/releases/{PRODVER}/Server/x86_64/os/LiveOS/squashfs.img rescue

label local
menu label Boot from ^local drive
localboot 0xffff
  1. Create a boot menu for UEFI clients at /var/lib/tftpboot/pxelinux/uefi.

    function load_video {
    	insmod efi_gop
    	insmod efi_uga
    	insmod video_bochs
    	insmod video_cirrus
    	insmod all_video
    }
    
    load_video
    set gfxpayload=keep
    insmod gzio
    
    menuentry 'Install Fedora 64-bit'  --class fedora --class gnu-linux --class gnu --class os {
    	linuxefi f27/vmlinuz ip=dhcp inst.repo=http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/
    	initrdefi f27/initrd.img
    }
    
    menuentry 'Install Fedora 27 Server'  --class fedora --class gnu-linux --class gnu --class os {
    	kernel f27/vmlinuz
    	append initrd=f27/initrd.img inst.repo=http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/ ip=dhcp ks=https://git.fedorahosted.org/cgit/spin-kickstarts.git/plain/fedora-install-server.ks?h=f21
    }
    
    menuentry 'Rescue installed system'  --class fedora --class gnu-linux --class gnu --class os {
    	kernel f27/vmlinuz
    	append f27/initrd=initrd.img root=live:http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/LiveOS/squashfs.img rescue
    }

Obtendo o kernel e initrd

Baixando o kernel e initrd
  1. Crie um diretório para os arquivos.

    # mkdir -p /var/lib/tftpboot/f27
  2. Baixe o kernel.

    # wget http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/images/pxeboot/vmlinuz -O /var/lib/tftpboot/f27/vmlinuz
  3. Baixe o initrd

    # wget http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/images/pxeboot/initrd.img -O /var/lib/tftpboot/f27/initrd.img

Fornecendo repositórios

Os exemplos nesta seção usam os espelhos públicos do Fedora como fonte do pacote. Para instalações mais rápidas, instalação em muitos sistemas ou ambientes mais isolados, você pode desejar manter um repositório local.

Fedora Infrastructure maintains instructions for a configuring a local mirror at https://fedoraproject.org/wiki/Infrastructure/Mirroring. The preferred method for providing repositories is via HTTP, and you can refer to the Fedora System Administrator’s Guide, available at http://docs.fedoraproject.org/, to configure httpd.

Instalações de rede avançadas com Cobbler

For more complex environments, Fedora offers the cobbler installation server. Tasks like managing kickstart configurtations, coordinating repositories, maintaining dns records, dhcp servers, and even puppet manifests are effectively automated by cobbler.

Embora aproveitar todos os recursos fornecidos pelo cobbler possa ser relativamente simples, a funcionalidade completa desta ferramenta poderosa é muito ampla para ser documentada neste guia. A comunidade do cobbler fornece documentação no https://cobbler.github.io/ para acompanhar os pacotes no repositório Fedora.

Como alternativa, você também pode estar interessado em Foreman. Você pode encontrar a documentação oficial, bem como downloads no site do projeto em https://www.theforeman.org/.