4
Servidor PXE de Instalaciones GNU/Linux Según Wikipedia, PXE hace referencia al entorno de ejecución de prearranque (Preboot eXecution Environment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados. PXE fue introducido como parte del framework Wired for Management por Intel y fue descrito en la especificación (version 2.1) publicada por Intel y Systemsoft el 20 de septiembre de 1999. PXE utiliza varios protocolos de red como IP , UDP , DHCP y TFTP , y conceptos como Globally Unique Identifier (GUID), Universally Unique Identifier (UUID) y Universal Network Device Interface (UNDI). El término cliente PXE sólo se refiere al papel que la máquina juega en el proceso de arranque mediante PXE. Un cliente PXE puede ser un servidor, un ordenador de mesa, portátil o cualquier otra máquina que esté equipada con código de arranque PXE. El firmware del cliente trata de encontrar un servicio de redirección PXE en la red para recabar información sobre los servidores de arranque PXE disponibles. Tras analizar la respuesta, el firmware solicitará al servidor de arranque apropiado el file path de un network bootstrap program (NBP), lo descargará en la memoria RAM del ordenador mediante TFTP, probablemente lo verificará, y finalmente lo ejecutará. Si se utiliza un único NBP para todos los clientes PXE se puede especificar mediante BOOTP sin necesidad de un proxy DHCP, pero aún será necesario un servidor TFTP. Nota importante: Se que las distros están bastante atrasadas. También se que existe gPXE, el cual ayuda a hacer este trabajo aun más fácil. Pero la intención de esta guía es proporcionar una base de conocimiento útil y un panorama de cómo funcionan las cosas. Al final este tutorial nos brindará un Servidor desde el cual podemos instalar en cuestión de minutos las distintas distribuciones de GNU/Linux que se muestran vía PXE (arranque por red) en el número de computadoras que haya en nuestra red local. Manos a la obra... Descargar los ISOs de las distribuciones # mkdir p /media/iso/ # cd /media/iso/ # wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Fedora/i386/iso/Fedora15i386DVD.iso # wget http://mirror.anl.gov/pub/ubuntuiso/DVDs/ubuntu/10.10/release/ubuntu10.10dvdi386.iso # wget ftp://mirror.stanford.edu/pub/mirrors/centos/6.0/isos/i386/CentOS6.0i386binDVD.iso # wget http://opensuse.mirror.netriplex.com/distribution/11.4/iso/openSUSE11.4DVDi586.iso # wget http://linuxfreedom.com/linuxmint/linuxmint.com/stable/11/linuxmint11gnomedvd32bit.iso # wget http://cdnetworksus1.dl.sourceforge.net/project/systemrescuecd/sysresccdx86/2.2.1/systemrescuecdx862.2.1.iso # wget http://free.nchc.org.tw/clonezillalive/oldstable/clonezillalive1.2.214.iso Luego de completadas las descargas, renombramos los ISOs para manejar nombres simples # mv Fedora15i386DVD.iso fedora.iso # mv ubuntu10.10dvdi386.iso ubuntu.iso # mv CentOS6.0i386binDVD.iso centos.iso # mv openSUSE11.4DVDi586.iso opensuse.iso # mv linuxmint11gnomedvd32bit.iso linuxmint.iso # mv systemrescuecdx862.2.1.iso sysrescue.iso # mv clonezillalive1.2.214.iso clonezilla.iso

Servidor Pxe Linux

Embed Size (px)

DESCRIPTION

Servidor PXE

Citation preview

Page 1: Servidor Pxe Linux

Servidor PXE de Instalaciones GNU/Linux

Según Wikipedia, PXE hace referencia al entorno de ejecución de prearranque (Preboot eXecutionEnvironment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados.

PXE fue introducido como parte del framework Wired for Management por Intel y fue descrito en la especificación (version 2.1) publicada por Intel y Systemsoft el 20 de septiembre de 1999. PXE utiliza varios protocolos de red como IP, UDP, DHCP y TFTP, y conceptos como Globally Unique Identifier (GUID), Universally Unique Identifier (UUID) y Universal Network Device Interface (UNDI).

El término cliente PXE sólo se refiere al papel que la máquina juega en el proceso de arranquemediante PXE. Un cliente PXE puede ser un servidor, un ordenador de mesa, portátil o cualquier otra máquina que esté equipada con código de arranque PXE.

El firmware del cliente trata de encontrar un servicio de redirección PXE en la red para recabarinformación sobre los servidores de arranque PXE disponibles. Tras analizar la respuesta, el firmware solicitará al servidor de arranque apropiado el file path de un network bootstrap program (NBP), lo descargará en la memoria RAM del ordenador mediante TFTP, probablemente lo verificará, y finalmente lo ejecutará. Si se utiliza un único NBP para todos los clientes PXE se puede especificar mediante BOOTP sin necesidad de un proxy DHCP, pero aún será necesario un servidor TFTP.

Nota importante: Se que las distros están bastante atrasadas. También se que existe gPXE, el cual ayuda a hacer este trabajo aun más fácil. Pero la intención de esta guía es proporcionar una base de conocimiento útil y un panorama de cómo funcionan las cosas.Al final este tutorial nos brindará un Servidor desde el cual podemos instalar en cuestión de minutos las distintas distribuciones de GNU/Linux que se muestran vía PXE (arranque por red) en el número de computadoras que haya en nuestra red local.

Manos a la obra...Descargar los ISOs de las distribuciones

# mkdir p/media/iso/# cd /media/iso/# wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Fedora/i386/iso/Fedora15i386DVD.iso# wget http://mirror.anl.gov/pub/ubuntuiso/DVDs/ubuntu/10.10/release/ubuntu10.10dvdi386.iso# wget ftp://mirror.stanford.edu/pub/mirrors/centos/6.0/isos/i386/CentOS6.0i386binDVD.iso# wget http://opensuse.mirror.netriplex.com/distribution/11.4/iso/openSUSE11.4DVDi586.iso# wget http://linuxfreedom.com/linuxmint/linuxmint.com/stable/11/linuxmint11gnomedvd32bit.iso# wget http://cdnetworksus1.dl.sourceforge.net/project/systemrescuecd/sysresccdx86/2.2.1/systemrescuecdx862.2.1.iso# wget http://free.nchc.org.tw/clonezillalive/oldstable/clonezillalive1.2.214.iso

Luego de completadas las descargas, renombramos los ISOs para manejar nombres simples# mv Fedora15i386DVD.iso fedora.iso# mv ubuntu10.10dvdi386.iso ubuntu.iso# mv CentOS6.0i386binDVD.iso centos.iso# mv openSUSE11.4DVDi586.iso opensuse.iso# mv linuxmint11gnomedvd32bit.iso linuxmint.iso# mv systemrescuecdx862.2.1.iso sysrescue.iso# mv clonezillalive1.2.214.iso clonezilla.iso

Page 2: Servidor Pxe Linux

Instalar y configurar los servicios# yum install dhcp vsftpd tftpserver# nano /etc/dhcpd.confddnsupdatestyle interim;not authoritative;option domainnameservers 8.8.8.8;option subnetmask 255.255.255.0;subnet 10.42.43.0 netmask 255.255.255.0{authoritative;range 10.42.43.50 10.42.43.100;allow unknownclients;allow booting;allow bootp;nextserver10.42.43.1;filename "pxelinux.0";}Nota: La tarjeta de red por medio de la cual se van a conectar los clientes debe tener la dirección 10.42.43.1, para el correctofuncionamiento del servicio DHCP.Configuramos TFTP en XINET# nano /etc/xinetd.d/tftpBuscamos la línea: disable=yes, y la ponemos así:disable=noEditamos el fichero /etc/exports que le pertenece a NFS y añadimos lo siguiente:# nano /etc/exports/var/ftp/ubuntu 10.42.43.0/24(rw,sync)/var/ftp/clonezilla 10.42.43.0/24(rw,sync)/var/ftp/sysrescue 10.42.43.0/24(rw,sync)/var/ftp/linuxmint 10.42.43.0/24(rw,sync)Editamos el fichero /etc/fstab que le pertenece a mountd y añadimos lo siguiente:# nano /etc/fstab/media/iso/fedora.iso /var/ftp/fedora/ udf,iso9660 user,auto,loop 0 0/media/iso/centos.iso /var/ftp/centos/ udf,iso9660 user,auto,loop 0 0/media/iso/ubuntu.iso /var/ftp/ubuntu/ udf,iso9660 user,auto,loop 0 0/media/iso/linuxmint.iso /var/ftp/linuxmint/ udf,iso9660 user,auto,loop 0 0/media/iso/clonezilla.iso /var/ftp/clonezilla/ udf,iso9660 user,auto,loop 0 0/media/iso/sysrescue.iso /var/ftp/sysrescue/ udf,iso9660 user,auto,loop 0 0/media/iso/opensuse.iso /var/ftp/opensuse/ udf,iso9660 user,auto,loop 0 0Creamos los directorios necesarios y montamos los ISOsDirectorios donde se van a montar los ISOs# mkdir p/var/ftp/centos/# mkdir p/var/ftp/fedora/# mkdir p/var/ftp/ubuntu/# mkdir p/var/ftp/linuxmint/# mkdir p/var/ftp/clonezilla/# mkdir p/var/ftp/sysrescue/# mkdir p/var/ftp/opensuse/# mount a

Page 3: Servidor Pxe Linux

Directorios donde estará la configuración PXE# mkdir p/tftpboot/images/# mkdir p/tftpboot/images/ubuntu/# mkdir p/tftpboot/images/linuxmint/# mkdir p/tftpboot/images/fedora/# mkdir p/tftpboot/images/centos/# mkdir p/tftpboot/images/systemrescuecd/# mkdir p/tftpboot/images/clonezilla/# mkdir p/tftpboot/images/opensuse/# mkdir p/tftpboot/pxelinux.cfg/

De cada distro debemos copiar su initrd y su kernel (vmlinuz*) y pegarlos en el directorio de cada distro ubicado en el árbol /tftpboot/images. En el caso de SystemRescueCD el kernel se llama rescuecd y no vmlinuz*, y en el caso de openSUSE el kernel se llama linux.

Copiamos también los siguientes ficheros a /tftpboot/# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/# cp /usr/lib/syslinux/menu.c32 /tftpboot/

Crear y editar el archivo de configuración del menú PXE# nano /tftpboot/pxelinux.cfg/defaultDEFAULT menu.c32MENU TITLE fraterneo's GNU/Linux PXE ServerPROMPT 0TIMEOUT 150LABEL SystemRescueCD 2.2.0 (Live CD)KERNEL images/sysrescue/rescuecdAPPEND initrd=images/sysrescue/initram.igz netboot=nfs://10.42.43.1:/var/ftp/sysrescue/ setkmap=es scandelay=1 docachevga=791 ramdisk_size=32768LABEL Clonezilla 1.2.214(Live CD)KERNEL images/clonezilla/vmlinuz1APPEND initrd=images/clonezilla/initrd1.img boot=live union=aufs netboot=nfs nfsroot=10.42.43.1:/var/ftp/clonezilla/vga=791 ramdisk_size=32768LABEL CentOS 6 (Install DVDi386)KERNEL images/centos/vmlinuzAPPEND initrd=images/centos/initrd.img ip=dhcp method=ftp://10.42.43.1/centos/ vga=791 ramdisk_size=32768LABEL Fedora 15 (Install DVDi386)KERNEL images/fedora/vmlinuzAPPEND initrd=images/fedora/initrd.img ip=dhcp method=ftp://10.42.43.1/fedora/ vga=791 ramdisk_size=32768LABEL Ubuntu 10.10 (LiveInstallDVDi386)KERNEL images/ubuntu/vmlinuzAPPEND initrd=images/ubuntu/initrd.lz boot=casper onlyubiquitynetboot=nfs nfsroot=10.42.43.1:/var/ftp/ubuntu/vga=791 ramdisk_size=32768LABEL LinuxMint 11 (LiveInstallDVDi386)KERNEL images/linuxmint/vmlinuzAPPEND initrd=images/linuxmint/initrd.lz boot=casper netboot=nfs nfsroot=10.42.43.1:/var/ftp/linuxmint/ vga=791ramdisk_size=32768LABEL openSUSE 11.4 (Install DVDi386)KERNEL images/opensuse/linuxAPPEND initrd=images/opensuse/initrd root=/dev/ram0 load_ramdisk=1 splash=silent showopts vga=791 ramdisk_size=4096install=ftp://10.42.43.1/opensuse/

Luego de esto le damos todos los permisos a todo el árbol /tftpboot# chmod R777 /tftpboot/

Reiniciamos los servicios correspondientes# service vsftpd restart# service xinetd restart# service nfs restart# service dhcpd restart

Page 4: Servidor Pxe Linux

Opcional: Establecemos que los servicios se inicien automáticamente durante el arranque delsistema.# chkconfig vsftpd level 345 on# chkconfig xinetd level 345 on# chkconfig nfs level 345 on# chkconfig dhcpd level 345 on

NOTA IMPORTANTE: Recordar que para inicializar el DHCPD es necesario tener una tarjeta de red configurada en la misma subred en la que trabajará el servidor. Además es imprescindible deshabilitar SELINUX y el FIREWALL.