Creaci贸n de imagen
Descomprimimos la imagen
Vamos a utilizar la versi贸n de debian que contiene software privativo, para, por ejemplo, tener disponibles m谩s drivers en caso de que fueran necesarios. Tenemos que seguir los siguientes pasos:
- Descargamos la imagen de la p谩gina de debian:
$ wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/iso-cd/firmware-11.5.0-amd64-netinst.iso
- Descomprimimos la imagen utilizando
xorriso
en el directorioisofiles/
:
$ xorriso -osirrox on -indev firmware-11.5.0-amd64-netinst.iso -extract / isofiles/
Introducimos el preseed
- copiamos el fichero
preseed.cfg
a la ra铆z de la imagen:
$ sudo cp preseed.cfg isofiles/preseed.cfg
- Editamos el fichero
txt.cfg
(encargado del contenido del men煤 inicial de instalaci贸n) para a帽adir una opci贸n que utilice elpreseed
adem谩s de que cargue el idioma espa帽ol:
$ sudo nano isofiles/isolinux/txt.cfg
label install
menu label ^Install
kernel /install.amd/vmlinuz
append vga=788 initrd=/install.amd/initrd.gz --- quiet
label unattended-gnome
menu label ^Instalacion Debian Desatendida Preseed
kernel /install.amd/gtk/vmlinuz
append vga=788 initrd=/install.amd/gtk/initrd.gz preseed/file=/cdrom/preseed.cfg locale=es_ES console-setup/ask_detect=false keyboard-configuration/xkb-keymap=e>
Volvemos a generar la imagen
- Como hemos alterado los ficheros que contiene la imagen, tenemos que generar un nuevo fichero
md5sum.txt
:
$ cd isofiles/
$ chmod a+w md5sum.txt
$ md5sum `find -follow -type f` > md5sum.txt
$ chmod a-w md5sum.txt
$ cd .
- Por 煤ltimo cambiamos los permisos de
isolinux
y creamos la imagen nueva:
$ chmod a+w isofiles/isolinux/isolinux.bin
$ genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o debian-preseed.iso isofiles
Carga del fichero preseed.cfg desde red
Configuraci贸n del servidor
Para la instalaci贸n desatendida cargando el preseed
desde red, es necesario una m谩quina que haga el rol de servidor, teniendo un servidor apache2
instalado. Para preparar dicha m谩quina seguimos los siguientes pasos:
- Instalamos el servidor apache en la m谩quina:
$ apt upgrade && apt install apache2
- copiamos el fichero
preseed.cfg
previamente configurado al directorio/var/www/html
Tras este paso, el servidor ya est谩 configurado y ofreciendo la configuraci贸n a la red.
Utilizaci贸n desde el cliente
Para aplicar la configuraci贸n del fichero preseed
, iniciamos la instalaci贸n de una imagen de debian sin modificar. Para utilizarla tenemos dos opciones:
- Utilizando l铆nea de comandos:
- Pulsamos la tecla ESC para abrir la l铆nea de comandos
- Introducimos el siguiente comando para acceder al fichero, donde
IP servidor
es la ip de la m谩quina que tiene el servidor apache:
boot: auto url=[IP servidor]/preseed.cfg
- Utilizando las opciones avanzadas:
- Accedemos a opciones avanzadas en el men煤, seguido de instalaci贸n automatizada.
- Introducimos la ip del servidor con apache de la siguiente manera:
http://[IP servidor]/preseed.cfg
Tras esto, la instalaci贸n desatendida comenzar谩.
Instalaci贸n basada en preseed/PXE/TFT
Para esta instalaci贸n, al igual que la anterior, es necesario que una m谩quina haga el rol de servidor, adem谩s en este caso tiene que tener un servidor DHCP. Para configurarla vamos a seguir los siguientes pasos. La m谩quina tiene que tener una red aislada sin DHCP en la que se va a conectar con los clientes
Instalaci贸n de dnsmasq
- Instalamos el paquete dnsmasq, encargado tanto del DHCP como del servidor TFTP
$ apt install dnsmasq
- configuramos el contenido del fichero /etc/dnsmasq.conf/:
dhcp-range=192.168.100.50,192.168.100.150,255.255.255.0,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/srv/tftp
- En el paso anterior especificamos que se utilizara el directorio /srv/tftp/ como ra铆z para la transmisi贸n por pxe; vamos a crearlo:
$ mkdir /srv/tftp/
- Reiniciamos el servicio para que los cambios tengan efecto
$ systemctl restart dnsmasq
Descarga de la imagen
Para instalar utilizando PXE/TFTP tenemos que utilizar una imagen de debian especial llamada netboot. Esta imagen se encuentra en la siguiente direcci贸n: http://ftp.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz.
- Nos desplazamos al directorio /srv/tftp/, descargamos la imagen y la descomprimimos:
$ wget http://ftp.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz
$ tar -zxf netboot.tar.gz && rm netboot.tar.gz
Tras este paso, el servidor ya est谩 ofreciendo la imagen de debian a la red.
Reglas nftables
dado que el cliente solo est谩 conectado al servidor, no tiene ninguna conexi贸n a internet. Por lo que el servidor, adem谩s, tiene que hacer SNAT. Para ello vamos a activar el bit de forwarding y a aplicar las siguientes reglas de nftables:
$ nft add table nat
$ nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
$ nft add rule ip nat postrouting oifname "eth0" ip saddr 192.168.100.0/24 counter masquerade
$ nft list ruleset > /etc/nftables.conf
Si la configuraci贸n no ha persistido tras un reinicio, podemos recuperarla con:
$ nft -f /etc/nftables.conf
Fichero Preseed
Para a帽adir el fichero preseed, tenemos dos opciones. A帽adirlo a los ficheros que se est谩n distribuyendo a trav茅s de PXE
, o utilizar un servidor apache
, realiz谩ndose de la misma manera que en el paso anterior.
Para utilizar el fichero preseed.cfg
modificamos el fichero txt.cfg
para que utilice el que estamos ofreciendo en el servidor apache:
label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
label unattended-gnome
menu label ^Instalacion Debian Desatendida Preseed
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz preseed/url=192.168.100.5/preseed.txt locale=es_ES console-setup/ask_detect=false keyboard-configuration/xkb-keymap=e>
Lado del cliente
La instalaci贸n desde el lado del cliente es muy similar al paso anterior. Antes de empezar, hay que a帽adirle una tarjeta de red que est茅 en la red del DHCP, y hacer que sea una opci贸n de arranque. Una vez hecho esto, el cliente iniciar谩 la imagen en red, y desde ah铆, podemos seguir los pasos que ya sabemos para utilizar el fichero preseed.cfg