Documentation for a newer release is available. View Latest

Configurar un Servidor de Instalación

Este apéndice está dirigido a los usuarios con experiencia previa en Linux. Si es un usuario nuevo debería instalar usando un medio de arranque mínimo o el DVD de la distribución en su lugar.

Visión General de la Instalación PXE

Preboot Execution Environment, o PXE, es una tecnología que permite a los ordenadores arrancar directamente desde recursos proporcionados por una red. Instalar Fedora sobre la red significa que no tiene que crear un medio y puede instalar múltiples ordenadores o máquinas virtuales simultáneamente. El proceso involucra a diversos componente y funciones trabajando juntos para proporcionar los recursos que se requieren.

Ordenador capaz PXE

Los ordenadores más modernos tienen la capacidad de arrancar desde la red. Normalmente, una tecla de función pulsada durante el arranque traerá un menú de selección de arranque. En entornos diseñados para administración sin atención, los sistemas estarán con frecuencia configurados para, como primer intento, arrancar desde la red, después desde el almacenamiento local y el servidor de instalación está configurado para ofrecer solo la instalación cuando se le pida. El manual de su ordenador proporcionará instrucciones específicas sobre la configuración de las prioridades de arranque.

Servidor DHCP

Cuando un sistema solicita una dirección durante un arranque en red, el servidor DHCP proporciona también la localización de los archivos de arranque. Una red solo un servidor DHCP.

Servidor TFTP

Como el entorno previo al arranque es muy sencillo, los ficheros se deben proporcionar de un modo muy sencillo. Trivial File Transfer Protocol, o TFTP, proporciona al sistema el cargador de arranque necesario para continuar el proceso de instalación.

Cargador de arranque

Como el trabajo de arranque de un sistema operativo es demasiado complejo para el entorno previo al arranque, se utiliza un cargador de arranque para cargar el kernel y los archivos relacionados. También proporciona información de configuración al instalador y puede ofrecer un menú para la selección de distintas configuraciones.

Kernel e Initramfs

El kernel es el núcleo de cualquier sistema operativo Linux e initramfs proporciona al kernel las herramientas y recursos que necesita. Estos archivos son proporcionados también por tftp.

Repositorios de paquetes

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.

Configuración del Servidor DHCP

Instalar y configurar dhcpd
  1. Instalar el paquete servidor dhcp.

    # dnf install dhcp
  2. Create a simple configuration for the dhcp server at /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. Test your configuration and address any problems you discover.

    systemctl start dhcpd
    journalctl --unit dhcpd --since -2m --follow
  4. Add entries to point clients to their bootloader and the server that provides it to your subnet configuration in /etc/dhcp/dhcpd.conf. Because DHCP clients provide the server with identifying information along with their address request, BIOS clients and UEFI clients can each be directed to the correct bootloader.

    # 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. Restart the dhcp service to check the configuration and make changes as needed.

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

Installing the tftp server

Installing the tftp server
  1. Install the tftp server package.

    # dnf install tftp-server
  2. Start and enable the tftp socket. systemd will automatically start the tftpd service when required.

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

Providing and configuring bootloaders for PXE clients

Getting the bootloader files
  1. Get the syslinux bootloader for BIOS clients.

    1. Install the syslinux package.

      # dnf install syslinux
    2. Create a directory for the bootloader files, and make them available there.

      # 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. Get the bootloader files for UEFI systems

    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. Create a directory for the bootloader files, and make them available there.

      # mkdir -p /var/lib/tftpboot/uefi
      # cp /tmp/fedora/boot/efi/EFI/fedora/{shim.efi,grubx64.efi} /var/lib/tftpboot/uefi/
Configuring client bootloaders
  1. Create a boot menu for BIOS clients at /var/lib/tftpboot/pxelinux.cfg/default.

    default vesamenu.c32
    prompt 1
    timeout 600
    
    label linux
    menu label ^Install Fedora 27 64-bit
    menu default
    kernel f27/vmlinuz
    append initrd=f27/initrd.img inst.stage2=http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/ ip=dhcp
    
    label server
    menu label ^Install Fedora 27 ( Minimal Image )
    menu default
    kernel f27/vmlinuz
    append initrd=f27/initrd.img inst.stage2=http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/ ip=dhcp ks=https://example.com/fedora/kickstarts/minimal.ks
    
    label rescue
    menu label ^Rescue installed system
    kernel f27/vmlinuz
    append initrd=f27initrd.img ip=dhcp root=live:http://download.fedoraproject.org/pub/fedora/linux/releases/27/Server/x86_64/os/LiveOS/squashfs.img rescue
    
    label local
    menu label Boot from ^local drive
    localboot 0xffff
  2. 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
    }

Getting the kernel and initrd

Downloading the kernel and initrd
  1. Create a directory for the files.

    # mkdir -p /var/lib/tftpboot/f27
  2. Download the 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. Download the 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

Providing repositories

The examples in this section use the public Fedora mirrors as the package source. For faster installations, installing to many systems, or more isolated environments, you may wish to maintain a local repository.

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.

Advanced network installations with 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.

While levaraging all of the features provided by cobbler can be relatively simple, the full functionality of this powerful tool is too broad to be documented in this guide. The cobbler community provides documentation at https://cobbler.github.io/ to accompany the packages in the Fedora repository.

Alternatively, you may also be interested in Foreman. You can find official documentation as well as downloads on the project website at https://www.theforeman.org/.