Esto queriendo hacer que mi servidor gnu/linuc centos 5 se vuelva tambien una centralita para instalar GNU/Linux a los PCs que lleguen (o deseen ponerle una distro), la idea es que sienten su equipo (lap o pc) se conecten a la red (por cable), booteen por Red (PXE Boot), elijan la distro a instalar y se instale todo en red. Sin siquiera usar una memoria usb ni cdrom.
Siguiendo varios tutoriales (muuuuy desactualizados) he logrado hacer funcionar el dnsmasq ya que la version 2.45 no acepta la notcacion tipo "funciones" que presentan muchos tutoriales, asi que haciendo cambios al archivo de configuracion basicos, quedo asi:
shell# cat /etc/dnsmasq.conf
Código:
server=192.168.1.1
interface=eth0
dhcp-range=192.168.1.2,192.168.1.200
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/home/tftp
dhcp-boot=/home/tftp/pxelinux.0,server,192.168.1.1
dhcp-lease-max=150
dhcp-authoritative
log-queries
log-dhcp
conf-dir=/etc/dnsmasq.d
Ahora apagamos el DNS y encendemos el dnsmasq:
Código:
shell# /etc/init.d/named stop
shell# /etc/init.d/dnsmasq start
Como se observa en el config del dnsmasq, mi directorio donde estaran las distros es /home/tftp/, asi que tambien me monto un NFS y comparto dicho directorio y reiniciamos deamon:
shell# cat /etc/expots
Código:
/home/distros/public_html/ 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/tftp/ 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/backups 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
shell# /etc/init.d/nfs restart
Ahora monto el pxelinux.cfg para el pxe boot, todo en /home/tftp/
Código:
shell# ls -l /home/tftp/
distro --> /home/distros/public_html/
mensaje.txt
netboot.tar.gz
pxelinux.0
pxelinux.cfg/
syslinux/
Como observan distro es un enlace simbolico hacia /home/distros/public_html/ que es donde estaran en tanto las imagenes ISO (para que bajen via http), como tambien los datos decomprimidos de las ISOs.
Veamos un directorio de ejemplo:
Código:
shell# cd /home/distros/public_html/
shell# cd ubuntu_1104_alt
shell# ls -l
so/
iso/
shell# ls -l iso/
ubuntu-1104-alternative.iso
shell# ls -l so/
drwxrwxrwx 3 root root 4096 jun 4 13:24 boot
-rwxrwxrwx 1 root root 1115 jun 4 13:24 cdromupgrade
drwxrwxrwx 3 root root 4096 jun 4 13:24 dists
drwxrwxrwx 3 root root 4096 jun 4 13:24 doc
drwxrwxrwx 3 root root 4096 jun 4 13:24 install
drwxrwxrwx 2 root root 4096 jun 4 13:24 isolinux
-rwxrwxrwx 1 root root 179133 jun 4 13:24 md5sum.txt
drwxrwxrwx 2 root root 4096 jun 4 13:24 pics
drwxrwxrwx 3 root root 4096 jun 4 13:24 pool
drwxrwxrwx 2 root root 4096 jun 4 13:25 preseed
-rwxrwxrwx 1 root root 224 jun 4 13:25 README.diskdefines
lrwxrwxrwx 1 root root 1 jun 4 13:25 ubuntu ->
Y finalmente la configuracion del pxelinux.cfg/default
shell# cd /home/tftp/
shell# cat pxelinux.cfg/default
Código:
DISPLAY mensaje.txt
LABEL 8
kernel distro/ubuntu_1104_alt/so/install/vmlinuz netboot=nfs nfsroot=192.168.1.1:/home/tftp/distros/ubuntu_1104_alt/so/
append file=distro/ubuntu_1104_alt/so/preseed/ubuntu.seed initrd=distro/ubuntu_1104_alt/so/install/initrd.gz vga=normal ramdisk_size=32768
HASTA ESTE PUNTO...
Enciendo una PC conectada a la red y mi servidor (dnsmasq) me asigna un IP, me aparece el mensaje del boot y mi menu donde elijo la distribucion, en este caso de ejemplo, elijo ubuntu_1104_alt (label 8).
Se inicia Ubuntu (presentacion), se pone pantalla de color azul con una ventanita blanca y me pide que indique la configuracion del idioma, depues configuro el teclado, y en el siguiente paso me sale una ventana de error que indica que el cd no pudo montarse
Alguna idea ?