776 palabras
4 minutos
Instalaci贸n de Debian desatendida

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:

  1. 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
  1. Descomprimimos la imagen utilizando xorriso en el directorio isofiles/:
$ xorriso -osirrox on -indev firmware-11.5.0-amd64-netinst.iso -extract / isofiles/

Introducimos el preseed#

  1. copiamos el fichero preseed.cfg a la ra铆z de la imagen:
$ sudo cp preseed.cfg isofiles/preseed.cfg
  1. Editamos el fichero txt.cfg (encargado del contenido del men煤 inicial de instalaci贸n) para a帽adir una opci贸n que utilice el preseed 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#

  1. 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 .
  1. 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:

  1. Instalamos el servidor apache en la m谩quina:
$ apt upgrade && apt install apache2
  1. 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:

  1. Utilizando l铆nea de comandos:
    1. Pulsamos la tecla ESC para abrir la l铆nea de comandos
    2. 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
  1. Utilizando las opciones avanzadas:
    1. Accedemos a opciones avanzadas en el men煤, seguido de instalaci贸n automatizada.
    2. 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#

  1. Instalamos el paquete dnsmasq, encargado tanto del DHCP como del servidor TFTP
$ apt install dnsmasq
  1. 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
  1. 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/
  1. 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.

  1. 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

Instalaci贸n de Debian desatendida
https://www.robertops.com/posts/2022-10-06_desatendida/
Autor
Roberto Rodr铆guez
Publicado el
2022-10-06