viernes, 10 de agosto de 2012

PXE EN LINUX



PXE hace referencia al entorno de ejecución de pre-arranque (Preboot Execution Enviroment).
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 (discos duros) ò de los sistemas operativos instalados.

Para utilizar PXE debemos configurar la infraestructura de red necesaria:

- Un servidor DHCP que asigne direcciones IP a las máquinas que deseamos instalar en Red , y configurado para el arranque de PXE.

-Servidor TFTP que admita el arranque de PXE. Las imágenes de arranque estarán ubicadas en el servidor TFTP.

-PXELINUX instalado en el servidor PXE.

-Imagen del S.O montada en el servidor PXE.

-Cliente PXE (también llamado "sistemas de destino") con una tarjeta de interfaz de Red que permita el arranque desde la red.

NOTA: PXE se debe ejecutar sólo en IPV4 (IPV6 todavia no admite el arranque de red de PXE).


Acontinuación vamos a instalar en  una máquina virtual con S.O centos 6-2, un servidor PXE para la instalación remota de un S.O con imagen .iso Centos 6-2

1) INSTALAMOS LOS PAQUETES NECESARIOS

Primero instalalamos el servidor DHCP, mediante el comando :

yum install dhcp

Si se instaló correctamente debe terminar así



-Luego instalamos un servidor FTP seguro y rápido, mediante el siguiente comando:

yum install vsftpd

Si se instaló correctamente debe terminar así:



-Ahora instalamos un servidor de protocolo de transferencia de archivos trivial (TFTP), mediante el siguiente comando:

yum install tftp-server

Si se instaló correctamente debe terminar así:



- Instalamos el sistema de arranque y rescate  SYSLINUX, mediante el siguiente comando:

yum install syslinux





2) Ahora vamos a configurar el servidor DHCP:

nano /etc/dhcp/dhcpd.conf






3) Modificamos el siguiente archivo del servidor TFTP:  

nano /etc/xinetd.d/tftp

en éste archivo cambiaremos la ruta de server_args por = -s /tftpboot
y la linea de disable la cambiaremos por = no



4) Ahora modificaremos el archivo /etc/exports, y pondremos lo siguiente:

nano /etc/exports



5) Mediante el comando mkdir -p crearemos las siguientes carpetas:

mkdir -p /var/ftp/centos



mkdir -p /tftpboot/images/centos




5) Ahora crearemos el archivo pxelinux.cfg  en tftpboot:

mkdir -p /tftpboot/pxelinux.cfg



6) Para el siguiente paso debemos tener el CD/DVD del S.O centos en nuestro Escritorio.

Como estamos trabajando en virtual-box, para que nuestra máquina reconozca el CD-DVD, vamos en la parte superior de la maquina virtual a Dispositivos- Dispositivos CD-DVD y seleccionamos el CD-DVD de centos 6.2




7) Ahora copiamos desde el CD/DVD  de centos 6.2 los archivos initrd.img y vmlinuz a la carpeta /tftpboot/images/centos/




8) Ahora con el comando touch crearemos el archivo default dentro de pxelinux.cfg


9) Procedemos a modificar el archivo recién creado con el comando nano:

(En este archivo especificaremos la ubicacion de los archivos initrd.img y vmlinuz, y daremos algunos parámetros al servidor PXE acerca del S.O que desemaos instalar en Red)

nano /tftpboot/pxelinux.cfg/default




10) Le otorgamos los permisos necesarios a la carpeta tftpboot para que no hallan problemas en el funcionamiento de nuestro servidor.






11) Para éste punto debemos tener la imagen .iso del S.O centos 6-2 en el Escritorio de nuestra máquina.

Finalmente montamos la imagen .iso a la carpeta /var/ftp/centos  con el siguiente comando:






11) Reiniciamos todos los servicios y vemos que están funcionando correctamente




12) Para que nuestros servicios se inicien automáticamente al prender ó reiniciar la máquina virtual, ponemos chkconfig servicio on





13) Tambien desabilitamos el iptables para que no tengamos problemas en la conexión con del cliente, recordando que el comando chkconfig es para que la configuración quede guardada asì se reinicie el equipo.



13) Ahora vamos a desabilitar el selinux que viene configurado por defecto en enforcing.
Lo vamos a cambiar por disabled, en el siguiente archivo: /etc/selinux/config

nano /etc/selinux/config



Para que el cambio de  configuración del selinux sea aceptado por la máquina, debemos reiniciarla. 
Puede ser con el comando init 6




CONFIGURACIÓN CLIENTE 

14) Como ya tenemos configurado nuestro servidor PXE, procedemos a probar nuestro cliente (en èste caso el Centos 6 ) Para que su S.O se instale por Red.

Como vemos, en la màquina virtual del cliente vamos a Sistema- Placa Base y ponemos la orden de arranque que empiece por Red(Para que se instale mediante el PXE configurado en el servidor) y luego Disco Duro (Para que una vez instalada la màquina podamos iniciarr nuestro S.O); En èste mismo menù también debemos ir a Características Extendidas y habilitar la opcion IO APIC.




Ahora en el menu de Sistema, vamos a Procesador, y en características extendidas habilitamos la opcion de PAE/NX


Ahora vamos a RED, y habilitamos una Tarjeta de Red en modo Red Interna, para que nuestro cliente pueda estar en la misma red que nuestro servidor.


Finalmente iniciamos nuestra maquina virtual cliente y esperamos a que el servidor DHCP nos asigne direccion IP y nos permita iniciar el sistema mediante PXE.



Vemos que hemos tenido conexión con el servidor PXE, y presionamos enter para que inicie la instalación del S.O



Empezamos a configurar los parámetros necesarios de instalación






Una vez completada la instalación de Centos, debemos reiniciar el equipo, pero en vez de reiniciarlo, vamos a apagar nuestra maquina virtual, para realizar el ultimo cambio requerido en la configuración de nuestro cliente.


Debemos cambiar la orden de arranque para que empiece por disco Duro , y deshabilitamos la orden de arranque por Red para que podamos iniciar normalmente nuestro sistema operativo (De lo contrario, si dejamos la orden de arranque por Red, se seguirà instalando el S.O de Centos mediante PXE sin ningun sentido)


Volvemos a iniciar nuestra maquina virtual, y vemos que ya está instalada, solo debemos configurar algunos parámetros que nos pide Centos 6


Una vez configurados todos los parámetros necesario, como particiones, zona Horaria, Usuario y clave, vemos que tenemos el S.O centos 6-2 instalado correctamente en el cliente mediante un servidor PXE.