martes, 22 de abril de 2014

Agregando ArchLinux y Antergos al Servidor de Instalación PXE

Hacía bastante tiempo que no os traía actualizaciones sobre el bien conocido por ustedes Servidor de Instalaciones PXE, el cual, para aquellos que no lo saben, es un servidor que hace uso de Xinetd, VSTFPD, NFS, HTTPD, DHCPD o DNSMasq, y Syslinux, para servir distribuciones de GNU/Linux vía la red local (LAN) a fin de ser probadas o instaladas en varios equipos de forma simultánea.

Pues bien, dado que el servidor fue creciendo paulatinamente, pasando de servir solo cuatro distros a server más de una docena, casi todas en 32 y 64 bits, en esta entrega veremos cómo agregar al mismo las distribuciones ArchLinux y Antergos (un derivado de Arch) para ser servidos en nuestro PXE.

Dentro de lo poco que hemos mencionado a ArchLinux en este blog, cabe resaltar que es una distro de propósito general que se adapta a cualquier necesidad y su enfoque es la simplicidad, el minimalismo y la elegancia en el código. Sin embargo requiere de ciertos conocimientos y bastante sentido común para seguir las guías de su Wiki oficial.

Pero también tenemos a Antergos, derivada de ArchLinux, con las mismas características pero con un instalador gráfico que nos permite elegir entre varios escritorios para instalar y otras funciones a favor de facilidad de uso.

Entrando ya en materia, asumiremos que ya tienes este servidor configurado y que solamente descargaremos  las imágenes (.iso) correspondientes para trabajar sobre ellas copiando los archivos necesarios a los lugares indicados.

ArchLinux nos ofrece un .iso que es multiarch, el cual integra los kernels para ambas arquitecturas mayoritarias (32 y 64 bits IBM Compatible). Por lo que solo es necesario descargar una imagen para tenerlo disponible para ambas arquitecturas. Es bueno recordar también que como es Rolling Release, la imagen es relativamente pequeña y todo lo demás se descarga de Internet a medida que instalamos. También lo mismo sucederá con Antergos, que veremos más adelante.

Descargamos el .iso del sitio https://www.archlinux.org/download/ eligiendo el mirror más conveniente para nosotros.
[fraterneo@rainbow ~]$ wget http://mirrors.kernel.org/archlinux/iso/2014.04.01/archlinux-2014.04.01-dual.iso
[fraterneo@rainbow ~]$ sudo mount -o loop archlinux-2014.04.01-dual.iso /mnt
[fraterneo@rainbow ~]$ cp /mnt/arch/boot/i686/{archiso.img,vmlinuz} /var/lib/tftpboot/images/archlinux/32
[fraterneo@rainbow ~]$ cp /mnt/arch/boot/x86_64/{archiso.img,vmlinuz} /var/lib/tftpboot/images/archlinux/64
[fraterneo@rainbow ~]$ cp -af /mnt/arch /home/fraterneo/images/archlinux/
[fraterneo@rainbow ~]$ sudo umount /mnt
Agregamos las entradas correspondiente para el menú PXE.
[fraterneo@rainbow ~]$ sudo nano /var/lib/tftpboot/pxelinux.cfg/other
label archlinux32
menu label ^1) Arch Linux 2014.04 (Install 32bits)
kernel images/archlinux/32/vmlinuz
append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/archlinux/ ip=:::::eth0:dhcp -

label archlinux64
menu label ^2) Arch Linux 2014.04 (Install 64bits)
kernel images/archlinux/64/vmlinuz
append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/archlinux/ ip=:::::eth0:dhcp -
Con Antergos tendremos que descargar dos imagenes y hacer el mismo proceso que acabamos de hacer con ArchLinux. De momento Antergos solo tiene imágenes testing puesto que está próximo el lanzamiento 2014.04, pero eso no representa inconveniente.

Descargamos los .iso del sitio http://mirrors.antergos.com/iso/testing/.
[fraterneo@rainbow ~]$ wget http://mirrors.antergos.com/iso/testing/antergos-2014.04.20-i686.iso
[fraterneo@rainbow ~]$ wget http://mirrors.antergos.com/iso/testing/antergos-2014.04.20-x86_64.iso
[fraterneo@rainbow ~]$ sudo mount -o loop antergos-2014.04.20-i686.iso /mnt
[fraterneo@rainbow ~]$ cp /mnt/arch/boot/{archiso.img,vmlinuz} /var/lib/tftpboot/images/antergos/32
[fraterneo@rainbow ~]$ cp -af /mnt/arch /home/fraterneo/images/antergos/32
[fraterneo@rainbow ~]$ sudo umount /mnt
[fraterneo@rainbow ~]$ sudo mount -o loop antergos-2014.04.20-x86_64.iso /mnt
[fraterneo@rainbow ~]$ cp /mnt/arch/boot/x86_64/{archiso.img,vmlinuz} /var/lib/tftpboot/images/antergos/64
[fraterneo@rainbow ~]$ cp -af /mnt/arch /home/fraterneo/images/antergos/64
[fraterneo@rainbow ~]$ sudo umount /mnt
Agregamos las entradas correspondiente para el menú PXE.
[fraterneo@rainbow ~]$ sudo nano /var/lib/tftpboot/pxelinux.cfg/other
label antergos32
menu label ^3) Antergos 2013.11 (Live-Install 32bits)
kernel images/archlinux/32/vmlinuz
append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/antergos/32 ip=:::::eth0:dhcp -

label antergos64
menu label ^4) Antergos 2013.11 (Live-Install 64bits)
kernel images/archlinux/64/vmlinuz
append initrd=images/archlinux/64/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/antergos/64 ip=:::::eth0:dhcp -
Entonces el fichero other que corresponde al menú Other Distributions, el cual incluye también a openSUSE, quedará de la siguiente manera:
prompt    0
timeout   300
ontimeout   local
menu color border  0 #ffffffff #ee000000 std
menu color title  0 #ffffffff #ee000000 std
menu color sel   0 #ffffffff #85000000 std
menu color unsel  0 #ffffffff #ee000000 std
menu color pwdheader  0 #ff000000 #99ffffff rev
menu color pwdborder  0 #ff000000 #99ffffff rev
menu color pwdentry  0 #ff000000 #99ffffff rev
menu color hotkey  0 #ff00ff00 #ee000000 std
menu color hotsel  0 #ffffffff #85000000 std
menu rows   6
menu vshift   6
menu resolution  800 600
menu background  vesamenu-bg3.jpg
menu master passwd  $1$wh9Fn.z.$QMMDoZ5jGn4Ha6uKsBEvC1
menu title   fraterneo's GNU/Linux PXE Server v3.0 (Other Distros)

label main
 menu label ^0) Back to Main Menu
 kernel vesamenu.c32
 append pxelinux.cfg/default

label antergos32
 menu label ^1) Antergos 2013.11 (Live-Install 32bits)
 kernel images/archlinux/32/vmlinuz
 append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/antergos/32 ip=:::::eth0:dhcp -

label antergos64
 menu label ^2) Antergos 2013.11 (Live-Install 64bits)
 kernel images/archlinux/64/vmlinuz
 append initrd=images/archlinux/64/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/antergos/64 ip=:::::eth0:dhcp -

label archlinux32
 menu label ^3) Arch Linux 2014.04 (Install 32bits)
 kernel images/archlinux/32/vmlinuz
 append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/archlinux/ ip=:::::eth0:dhcp -

label archlinux64
 menu label ^4) Arch Linux 2014.04 (Install 64bits)
 kernel images/archlinux/64/vmlinuz
 append initrd=images/archlinux/32/archiso.img archisobasedir=arch archiso_nfs_srv=10.0.2.1:/home/fraterneo/images/archlinux/ ip=:::::eth0:dhcp -

label opensuse32
 menu label ^5) openSUSE 12.3 (Install DVD-32bits)
 kernel images/opensuse/32/linux
 append initrd=images/opensuse/32/initrd install=nfs://10.0.2.1/home/fraterneo/images/opensuse/32

label opensuse64
 menu label ^6) openSUSE 12.3 (Install DVD-64bits)
 kernel images/opensuse/64/linux
 append initrd=images/opensuse/64/initrd install=nfs://10.0.2.1/home/fraterneo/images/opensuse/64
Finalmente reiniciamos los servicios involucrados (aunque solo es necesario reiniciar NFS):
[fraterneo@rainbow ~]$ sudo systemctl restart xinetd.service 
[fraterneo@rainbow ~]$ sudo systemctl restart nfs-server.service 
[fraterneo@rainbow ~]$ sudo systemctl restart vsftpd.service 
[fraterneo@rainbow ~]$ sudo systemctl restart dnsmasq.service 
Visualmente obtendremos lo siguiente al arrancar desde un cliente:


¡Felices pruebas!

No hay comentarios:

Publicar un comentario