Este tutorial muestra como configurar un servidor pxe boot para instalar varias distribuciones de GNU/Linux.
Por el momento incluiré opciones para Ubuntu y CentOS después iré añadiendo más.
La instalación da por entendido que el servidor se configurará en un equipo con Ubuntu o con Debian.
Lo primero que tenemos que hacer es instalar el paquete tftpd-hpa para esto ejecutamos como el usuario root:root@~:# apt-get install tftpd-hpa
Al momento de instalar el paquete preguntara la ubicación por defecto de los archivos servirá desde tftp.
Podemos dejar la ruta por defecto ya que esta configuración se puede modificar en el archivo/etc/default/tftpd-hpa
Si realiza un cambio a la configuración deberá reiniciar el servidor tftpd con el comandoroot@~:# /etc/init.d/tftpd-hpa restart.
Puede comprobar que el servidor tftp esta escuchando ejecutando el comandoroot@~:# netstat -atunp | grep tftp
Con esto queda configurado tftpd y esta listo para ser usado.
Si dejamos las opciones por defecto debería cargar los archivos para servirlos por tftp en el directorio /srv/tftp .
Lo primero que tenemos que hacer es instalar el paquete dhcp3-server:root@~:# apt-get install dhcp3-server
al intentar iniciar nos va a salir un mensaje de "failed", esto es por que aun no hemos creado el archivo de configuración así que vamos primero a hacer un backup del archivo original que nos puede servir luego para consultar opciones:root@~:# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
y empezamos con un archivo vacío de configuración ejecutando el siguiente comando:root@~:# rm -f /etc/dhcp/dhcpd.conf && nano /etc/dhcp/dhcpd.conf
(en el comando anterior podemos usar nuestro editor de textos favorito)
como ejemplo he puesto la red local a 192.168.3.0/24, suponiendo que nuestro ruteador tenga la ip 192.168.3.254, nuestro servidor de nombres (DNS) es 8.8.8.8 y que el rango de ips que queremos que asigne nuestro servidor es desde la 192.168.3.50 hasta la 192.168.3.99.ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.3.0 netmask 255.255.255.0 {
next-server 192.168.3.254;
filename "pxelinux.0";
option routers 192.168.3.254;
option subnet-mask 255.255.255.0;
# option domain-name "example.com";
option domain-name-servers 8.8.8.8;
option time-offset -18000;
option ntp-servers pool.ntp.org;
range dynamic-bootp 192.168.3.50 192.168.3.99;
}
Una ves puestos nuestros datos de red, guardamos el archivo (en "nano" con Crtl+X) y ejecutamos:root@~:# /etc/init.d/isc-dhcp-server restart
Si no nos sale el mensaje de error, todo estará configurado bien. Podemos verificar que el servicio haya arrancado con el comando:root@~:# ps fax|grep dhcp
debería salir una linea así:1620 ? Ss 0:00 /usr/sbin/dhcpd -q
Lo primero que tenemos que hacer es instalar el paquete nfs-kernel-server:root@~:# apt-get install nfs-kernel-server
Luego definimos las carpetas que queremos exportar en el archivo /etc/exports, de forma básica y simple podemos compartir archivos en toda nuestra red (o cualquier red).
Por ejemplo supongamos que queremos compartir nuestra carpeta /home/usuario en nuestra red 192.168.3.0/24, así añadiríamos la siguiente linea al final del archivo /etc/exports:/home/usuario 192.168.3.0/255.255.255.0(no_root_squash,no_subtree_check,rw)
Para aplicar los cambios ejecutamos:root@~:# /etc/init.d/nfs-kernel-server reload
Si queremos crear una compartición para cualquier red pondríamos en la parte de la red/mascara algo así: 0.0.0.0/0.0.0.0
Al final de la linea de configuración están las letras "rw", si queremos que solo se pueda visualizar los archivos solo hay que quitar la w.
Ya podemos revisar la capeta que compartimos montándola desde otra computadora de la red con el comando:sudo mount -t nfs 192.168.3.254:/home/usuario /mnt/
Asumiendo que nuestro servidor NFS tiene la ip 192.168.3.254 y que queremos montarla en la ubicación /mnt/.
Instalar apache se ha vuelto bastante fácil de instalar en estos días.
Lo primero que tenemos que hacer es instalar el paquete apache2:root@~:# apt-get install apache2
No hay mas que configurar para una instalación básica.
La carpeta que usa apache por defecto en Debian es /var/www, mas conocido como "documet root"; en esta debemos copiar todo archivo que queramos publicar en el servidor web.
Como dato adicional el usuario con el que corre apache es www-data; si necesitamos que apache sea capaz de escribir archivos en un directorio o modificar archivos debemos cambiar de dueño los archivos que pongamos en "document root".
Por ejemplo:root@~:# chown -R www-data:www-data /var/www carpeta-de-archivos
Algunos paquetes recomendados si queremos alojar un CMS o alguna aplicación web que use LAMP(Linux, Apache, Mysql y PHP) serian:
Estos se pueden instalar fácilmente con el comando root@~:# apt-get install nombre-de-paquete
Primero debemos descomprimir el contenido del archivo que adjunto a este post (abajo esta el enlace).root@~:# tar xjvf syslinux-pxe.tar.bz2
El contenido de la capeta extraída debemos copiarlo a la carpeta raíz del servidor tftp, P. EJ:root@~:# cp -r syslinux-pxe/* /srv/tftp/
Una vez hecho esto, ya podemos realizar una prueba de booteo; aparecerá un menú desde el cual vamos a poder escoger que sistema operativo instalar o ejecutar en modo live siempre y cuando hayamos instalado el servidor tftpboot y el dhcp.
En la carpeta raíz del servidor tftp:
Todos los archivos contienen ejemplos de configuración y comentarios en español para personalizarlos completamente.
Lo primero que tenemos que hacer es definir como configuraremos el medio de instalación.
Para esto tenemos dos opciones:
Primero crearemos una carpeta para los archivos:sudo mkdir -p /var/lib/tftpboot/ubuntu
Para la primera opción copiamos los archivos del cd:sudo cp -rf /media/rutahaciaelcd /var/lib/tftpboot/ubuntu
Si optamos por la segunda alternativa, en ves de copiar los archivos, creamos la imagen iso (o usamos la que descargamos) y montamos la imagen en la carpeta que creamos (reemplazamos los con la información de la ruta hacia la imagen):sudo mount -o loop /rutaalaimagen/archivo.iso /var/lib/tftpboot/ubuntu/
Podemos crear también una entrada en el archivo /etc/fstab para que monte la imagen cada que se inicie el equipo:sudo gedit /etc/fstab
y añadimos la siguiente ruta, llenado con los datos correctos la ruta hacia la imagen:/rutaalaimagen/archivo.iso /var/lib/tftpboot/ubuntu iso9660 user,ro,loop 0 0
Luego debemos editar el archivo /var/lib/tftpboot/pxelinux.cfg/default:sudo gedit /var/lib/tftpboot/pxelinux.cfg/default
Y añadir la opción de pxe boot:
# Ubuntu
label 1
kernel ubuntu/casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed initrd=ubuntu/casper/initrd.gz boot=casper netboot=nfs ip=dhcp nfsroot=0.0.0.0:/var/lib/tftpboot/ubuntu804-x86 quiet splash -- debian-installer/language=es console-setup/layoutcode=es
NOTA: Podemos simplemente editar en el archivo de ejemplo que viene con el paquete en la parte de la ip del punto de montaje NFS. P.Ej: cambiar 0.0.0.0 por 192.168.0.254.
Luego debemos compartir el directorio /var/lib/tftpboot/ubuntu vía NFS, para esto añadimos la siguiente linea en el archivo /etc/exports; reemplazando los datos con la ip y mascara de nuestra red:/var/lib/tftpboot/ubuntu 0.0.0.0/0.0.0.0(no_root_squash,no_subtree_check,rw)
y listo, ya podemos ejecutar ubuntu desde nuestra red e instalarlo si deseamos.