Implementación de Ubuntu 22.04 con PXEBoot usando Syslinux

Implementación de Ubuntu 22.04 con PXEBoot usando Syslinux

Tengo un servidor DHCP, ftp y tftp funcional con un directorio tftpboot en el que las máquinas configuradas en PXEboot vienen a cargar syslinux sin problemas, desde la red.

Estoy intentando instalar ubuntu 22.04 en PXE a través de SYSLINUX.

he seguido estocorreolograr esto.

En esta publicación dice que debe extraer los archivos del kernel vmlinuz e initrd en la ISO del instalador del servidor ubuntu 22.04 y colocarlos en el directorio tftpboot. Luego cargue el ISO desde el archivo de configuración llamado default ubicado en el directorio pxelinux.cfg. A continuación se muestra una representación esquemática no exhaustiva del directorio tftpboot relacionado con jammy (omitiendo el resto de archivos utilizados tradicionalmente por syslinux)

└── tftpboot    
    ├── pxelinux.0
    ├── jammy
    │   ├── initrd
    │   └── vmlinuz
    ├── pxelinux.cfg
    │   └── default
    └── syslinux (All the Syslinux boot files)
        └── bios
            ├── ldlinux.c32
            ├── libutil.c32
            └── menu.c32

Aquí está el directorio ftp que tengo.

└── ftp   
    └── Ubuntu-22.04
        ├── ubuntu-22.04.1-live-server-amd64.iso
        └── Kickstart
            ├── user-data
            └── meta-data

Aquí está el archivo de datos de usuario que tomé para probar primero una instalación mínima. Los metadatos pueden estar vacíos:

#cloud-config
autoinstall:
  identity:
    hostname: jammy-minimal
    password: $6$gnqbMUzHhQzpDEw.$.cCNVVDsDfj5Feebh.5O4VbOmib7tyjmeI2ZsFP7VK2kWwgJFbfjvXo3chpeAqCgXWVIW9oNQ/Ag85PR0IsKD/
    username: ubuntu
  version: 1

Aquí está el archivo de configuración predeterminado que configuré.

default menu.c32
menu title Ubuntu installer

LABEL ubuntu
    MENU LABEL Install Ubuntu Jammy Server
    MENU DEFAULT
    KERNEL jammy/vmlinuz
    IPAPPEND 1
    APPEND initrd=jammy/initrd ip=dhcp url=ftp://172.16.0.4/Ubuntu-22.04/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=ftp://172.16.0.4/Ubuntu-22.04/Kickstart

Finalmente, para agregar los archivos de datos de usuario (cloud-config) y metadatos, en el ftp que el archivo predeterminado podrá usar para descargar su configuración para iniciar una instalación automática, teniendo datos de usuario todos los pasos que habrá elegido manualmente antes, para poder realizar una instalación sin intervención manual (idioma, formato, etc.)

El kernel y la ISO se cargan correctamente e inician el proceso de instalación hasta el menú de instalación, pero el problema surge cuando necesita cargar el archivo cloud-config (datos de usuario) para iniciar una instalación automática. No puede encontrarlo aunque lo especifiqué en el archivo predeterminado. Esto es lo que está sucediendo en la imagen de abajo.

Cargando la ISO

Cargando la ISO

Esperando por siempre el inicio de la nube

Esperando por siempre el inicio de la nube

Luego, finalmente inicie el menú.

Luego, finalmente inicie el menú.

Aparentemente, el archivo de datos del usuario se ignora si lo cargo desde el archivo syslinux predeterminado. ¿Cómo es esto posible? ¿Tengo que cargarlo desde algún lugar que no sea el archivo predeterminado? Ya pensé en intentar cargarlo desde una ISO modificada. ¿Sería esta una buena alternativa? Gracias

Respuesta1

Esperando por siempre el inicio de la nube

Has comprobadoarchivos de registro de cloud-init? ¿Qué viste?

Sospecho que la razón por la que cloud-init está esperando para siempre es porqueno estás proporcionando una cadena NoCloudNet válida. La fuente de datos NoCloud de Cloud-init no admite soporte ftp. Delos documentos:

Con ds=nocloud, el valor semillafrom debe comenzar con / o file://. Con ds=nocloud-net, el valor semillafrom debe comenzar con http:// o https:// y terminar con un final /.

Si revisas tus registros de inicio de la nube, apuesto a que verás estoadvertencia.

Actualizar:En la versión 24.2, se agregará FTP a la fuente de datos NoCloud de cloud-init.

información relacionada