Instalación de Fedora por PXE

De BandaAncha.st
Saltar a: navegación, buscar
Sobre este documento
Tipo Manual (How To)
Categoria Linux
Plataforma Fedora Linux
Dificultad TuxTuxTux

En esta página se explica cómo instalar Fedora usando PXE. Esto es útil cuando hay que instalar muchas máquinas iguales o parecidas. La idea es instalar primero una de las máquinas y coinfigurarla como servidor dhcp para que el resto de las máquinas carguen el kernel por tftp y el instalador y los paquetes por http.

Preliminares[editar]

Después de instalar la primera máquina debemos copiar el contenido del DVD a nuestro disco duro y montarlo.

dd if=/dev/sr0 of=/root/fedora_dvd.iso
mount -o ro,loop -t iso9660 /root/fedora_dvd.iso /mnt

Hay que instalar las herramientas necesarias.

yum install tftp-server syslinux dhcp httpd  

Servidor DHCP[editar]

Para configurar el servidor dhcp es necesario crear o editar el archivo /etc/dhcpd.conf con algo como esto:

ddns-update-style ad-hoc;
deny unknown-clients;
not authoritative;
allow bootp;
allow booting;

subnet 192.168.1.0 netmask 255.255.255.0 {
        option domain-name-servers 192.168.1.1;
        range dynamic-bootp 192.168.1.10 192.168.1.254;
        default-lease-time 36000;
        max-lease-time 72000;
        option routers 192.168.1.1;
        option broadcast-address 192.168.1.255;
        option subnet-mask 255.255.255.0;
        next-server 192.168.1.1;
        option root-path "/tftpboot/";
        filename "pxelinux.0";
}

host maq1 {
        hardware ethernet 00:0A:5E:54:19:A5;
        fixed-address 192.168.1.11;
}

Resumiendo un poco, lo que dice este archivo es que cuando la máquina con MAC 00:0A:5E:54:19:A5 haga una petición de IP, se le asigne la IP 192.168.1.11 y se le envíe el archivo /tftpboot/pxelinux.0 como arranque. Se ha supuesto que el servidor tiene IP 192.168.1.1

Servidor TFTP[editar]

Para activar el servidor tftp hay que editar el archivo /etc/xinetd.d/tftp y cambiar disable = yes a disable = no.

Para configurar correctamente el arranque hay que copiar el archivo /usr/lib/syslinux/pxelinux.0 al directorio /tftpboot/. Deberemos copiar también en el mismo directorio los archivos /boot/initrd.img y /boot/vmlinuz

Nota A[editar]


Es posible crear una jerarquía con diversas arquitecturas y versiones de CentOS/Fedora por ejemplo con esta estructura:

/tftpboot/images/centos/i386/5.4

Del DVD de la CentOS debemos copiar los ficheros initrd.img y vmlinuz de images/pxeboot/ al directorio /tftpboot/images/centos/i386/5.4



Hay que crear el directorio /tftpboot/pxelinux.cfg/ y crear los siguientes archivos usando touch:

C
C0
C0A
C0A8
C0A80
C0A800
C0A800F
C0A800FE
00-0A-5E-54-19-A5

Nota B[editar]


Siguiendo este manual para CentOS 5.4 no es necesario crear los ficheros anteriores.



Nótese que el último archivo corresponde a la MAC de la máquina a instalar. La verdadera configuración de PXE la escribimos en el archivo /tftpboot/pxelinux.cfg/default:

default linux
label linux
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.1/linux/ks.cfg 

Esto indica al kernel PXE que se use el archivo de configuración ks.cfg para arrancar el kickstart.

Nota C[editar]


Siguiendo la jerarquía de images/centos/i386/5.4 un posible fichero /tftpboot/pxelinux.cfg/default podría ser este:

prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL CentOS 5.4 i386
        MENU LABEL CentOS 5.4 i386
        kernel images/centos/i386/5.4/vmlinuz
        append initrd=images/centos/i386/5.4/initrd.img ks=http://192.168.1.1/linux/ks.cfg

Servidor HTTP[editar]

Los contenidos del DVD que hemos montado tienen que ser publicados por http, así como nuestro archivo de kickstart. Primero hacemos el directorio linux.

mkdir /var/www/html/linux
cp /root/anaconda-ks.cfg /var/www/html/linux/ks.cfg

Y hacemos accesible el contenido del DVD:

ln -s /mnt/ /var/www/html/dvd 

Si Apache está configurado para que siga los enlaces debería publicar bien los contenidos.

Reiniciar los servicios[editar]

Para que la configuración se cargue debemos reiniciar los servicios

/etc/init.d/dhcpd restart
/etc/init.d/httpd restart
/etc/init.d/xinetd restart

Kickstart[editar]

La configuración del archivo ks.cfg debe editarse para reflejar el tipo de instalación que deseamos hacer, en particular:

# Use text mode install
text
# Install OS instead of upgrade
install
# Use network installation
url --url=http://192.168.1.1/dvd/
# Reboot after installation
reboot

Además pueden añadirse muchas otras opciones. Existe una excelente página sobre kickstart en https://fedoraproject.org/wiki/Anaconda/Kickstart y una utilidad llamada system-config-kickstart que pueden usarse para estas modificaciones.

Nota D[editar]


Otra posible versión del fichero ks.cfg dónde se especifican entre otras opciones de instalación un sistema base a nivel de paquetes a instalar:

# Use text mode install                   
text                                      
# Install OS instead of upgrade           
install
# Use network installation
url --url=http://192.168.1.1/dvd/

# Options
lang es_ES.UTF-8
keyboard es
network --device eth0 --bootproto static --ip 192.168.1.100 --netmask 255.255.255.0 --gateway 192.168.1.2 --nameserver 80.58.32.33,80.58.0.33 --hostname NOMBRE_SERVIDOR!
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Europe/Madrid
bootloader --location=mbr
rootpw CAMBIAR_ROOT_PASS!
# Partitions
# clearpart --all
# part /boot --fstype ext3 --size=100 --asprimary
# part / --fstype ext3 --size=7000
# part /var --fstype ext3 --size=14000
# part /tmp --fstype ext3 --size=2000
# part swap --grow

# Reboot after installation
reboot


%packages
@base
@core
@editors
@spanish-support
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath

# TODO: auth ldap

Nota: Algunos parámetros se deben ajustar a la instalación en particular que se haga!


Instalando[editar]

Para instalar sólo tenemos que asegurarnos que la máquina esté conectada en red local con el servidor y escoger en la BIOS el arranque por PXE. si todo va bien la instalación se ejecutará automágicamente. Si hay problemas podemos revisar los ficheros /var/log/messages y /var/log/httpd para tratar de identificar y corregir los problemas.

Para instalar la siguiente máquina sólo hay que editar el archivo /etc/dhcpd.conf, reiniciar el servidor de dhcp y crear con touch un archivo en /tftpboot/ que se corresponda a la MAC nueva.

Referencias[editar]