PXE está formado por varios componentes: DHCP, HTTP y TFTP. Este procedimiento demuestra cómo configurar un servidor PXE en Ubuntu.

DHCP distribuye dinámicamente ajustes de IP a componentes de NSX-T Data Center, como NSX Edge. En un entorno PXE, el servidor DHCP permite a NSX Edge solicitar y recibir automáticamente una dirección IP.

TFTP es un protocolo de transferencia de archivos. El servidor TFTP siempre está escuchando en busca de clientes de PXE en la red. Si detecta que hay algún cliente PXE de la red solicitando servicios PXE, proporciona el archivo ISO del componente NSX-T Data Center y la configuración de instalación contenida en un archivo de preconfiguración.

Requisitos previos

  • Un servidor PXE debe estar disponible en su entorno de implementación. El servidor PXE se puede configurar en cualquier distribución de Linux.

    Si tiene varias redes de administración, puede agregar rutas estáticas a las otras redes desde el dispositivo NSX-T Data Center.

  • Compruebe que el archivo de configuración preconfigurado tenga los parámetros net.ifnames=0 y biosdevname = 0 establecidos tras -- para que persistan después de reiniciar.

Procedimiento

  1. (opcional) Use un archivo inicial para configurar nuevos servicios TFTP o DHCP en un servidor Ubuntu.
    Un archivo inicial es un archivo de texto que contiene comandos CLI que ejecuta en el dispositivo tras el primer arranque.
    Asigne un nombre al archivo inicial según el servidor PXE al que se dirige. Por ejemplo:
    nsxcli.install
    El archivo debe copiarse en su servidor web, por ejemplo en /var/www/html/nsx-edge/nsxcli.install.

    En el archivo inicial, puede agregar los comandos CLI. Por ejemplo, para configurar la dirección IP de la interfaz de administración:

    stop service dataplane
    set interface eth0 <ip-cidr-format> plane mgmt
    start service dataplane

    Para cambiar la contraseña del usuario admin:

    set user admin password <new_password> old-password <old-password>

    Si especifica una contraseña en el archivo preseed.cfg, debe utilizar la misma contraseña en el archivo inicial. De lo contrario, utilice la contraseña predeterminada, que es "default".

    Para unir el NSX Edge al plano de administración:

    join management-plane <manager-ip> thumbprint <manager-thumbprint> username <manager-username> password <manager password>
  2. Cree dos interfaces, una para administración y otra para servicios DHCP y TFTP.
    Asegúrese de que la interfaz DHCP/TFTP esté en la misma subred en la que reside el NSX Edge.

    Por ejemplo, si las interfaces de administración del NSX Edge van a estar en la subred 192.168.210.0/24, coloque eth1 en esa misma subred.

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # PXE server's management interface
    auto eth0
    iface eth0 inet static
      address 192.168.110.81
      gateway 192.168.110.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
    # PXE server's DHCP/TFTP interface
    auto eth1
    iface eth1 inet static
      address 192.168.210.82
      gateway 192.168.210.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
  3. Instale el software del servidor DHCP y configure los ajustes necesarios para configurar el servidor PXE. Para obtener más información, consulte la documentación de Linux.
  4. Instale el servidor Apache, TFTP y otros componentes necesarios para configurar el servidor PXE.
  5. Copie o descargue el archivo ISO del instalador de NSX Edge en una carpeta temporal.
  6. Monte el archivo ISO y copie los componentes de instalación en el servidor TFTP y el servidor Apache.
    sudo mount -o loop ~/nsx-edge.<build>.iso /mnt
    cd /mnt
    sudo cp -fr install/netboot/* /var/lib/tftpboot/
    sudo mkdir /var/www/html/nsx-edge
    sudo cp -fr /mnt/* /var/www/html/nsx-edge/
  7. (opcional) Edite el archivo /var/www/html/nsx-edge/preseed.cfg para modificar las contraseñas cifradas.
    Puede utilizar una herramienta Linux como mkpasswd para crear un hash de contraseña.
    sudo apt-get install whois
    sudo mkpasswd -m sha-512
    
    Password: 
    $6$SUFGqs[...]FcoHLijOuFD
    1. Modifique la contraseña root, edite el archivo /var/www/html/nsx-edge/preseed.cfg y busque la siguiente línea:
      d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
    2. Reemplace la cadena hash.
      No es necesario escapar ningún carácter especial, como $, ', " o \.
    3. Agregue el comando usermod al archivo preseed.cfg para establecer la contraseña del usuario root, del usuario admin o de ambos.
      Por ejemplo, agregue el siguiente comando.
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' root; \
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' admin; \

      La cadena hash es un ejemplo. Debe escapar todos los caracteres especiales. La contraseña root del primer comando usermod reemplaza a la contraseña establecida en d-i passwd/root-password-crypted password $6$tgm....

      Si utiliza el comando usermod para establecer la contraseña, no se pide al usuario que cambie la contraseña tras iniciar sesión por primera vez. De lo contrario, el usuario deberá cambia la contraseña al iniciar sesión por primera vez.

  8. Agregue las siguientes líneas al archivo /var/lib/tftpboot/pxelinux.cfg/default.

    Reemplace 192.168.210.82 con la dirección IP de su servidor TFTP.

    label nsxedge
        kernel ubuntu-installer/amd64/linux
        ipappend 2
        append netcfg/dhcp_timeout=60 auto=true priority=critical vga=normal partman-lvm/device_remove_lvm=true netcfg/choose_interface=auto debian-installer/allow_unauthenticated=true preseed/url=http://192.168.210.82/nsx-edge/preseed.cfg mirror/country=manual mirror/http/hostname=192.168.210.82 nsx-kickstart/url=http://192.168.210.82/nsx-edge/nsxcli.install mirror/http/directory=/nsx-edge initrd=ubuntu-installer/amd64/initrd.gz mirror/suite=bionic netcfg/do_not_use_netplan=true --
  9. Agregue las siguientes líneas al archivo /etc/dhcp/dhcpd.conf.

    Reemplace 192.168.210.82 con la dirección IP de su servidor DHCP.

    allow booting;
    allow bootp;
    
    next-server 192.168.210.82; #Replace this IP address
    filename "pxelinux.0";
  10. Reinicie el servicio DHCP.
    sudo service isc-dhcp-server restart
    Nota: Si se devuelve un error, por ejemplo: "parada: Instancia desconocida: inicio: No se pudo iniciar el trabajo" (stop: Unknown instance: start: Job failed to start), ejecute sudo /etc/init.d/isc-dhcp-server stop y, a continuación, sudo /etc/init.d/isc-dhcp-server start. El comando sudo /etc/init.d/isc-dhcp-server start devuelve información sobre el origen del error.

Qué hacer a continuación

Instale NSX Edge sin sistema operativo utilizando un archivo ISO. Consulte Instalar NSX Edge automáticamente a través de un archivo ISO.