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 establecer en cualquier distribución de Linux. El servidor PXE debe tener dos interfaces, una para las comunicaciones externas y otra para suministrar los servicios TFTP y DHCP IP.

    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 dataplane
    set interface eth0 <ip-cidr-format> plane mgmt
    start 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 de servidor DHCP.
    sudo apt-get install isc-dhcp-server -y
  4. Edite el archivo /etc/default/isc-dhcp-server y agregue la interfaz que suministra el servicio DHCP.
    INTERFACES="eth1"
  5. (opcional) Si quiere que este servidor DHCP sea el servidor DHCP oficial de la red local, quite la marca de comentario de la línea authoritative; del archivo /etc/dhcp/dhcpd.conf.
    ...
    authoritative;
    ...
  6. En el archivo /etc/dhcp/dhcpd.conf, defina la configuración de DHCP para la red PXE.
    Por ejemplo:
    subnet 192.168.210.0 netmask 255.255.255.0 {
       range 192.168.210.90 192.168.210.95;
       option subnet-mask 255.255.255.0;
       option domain-name-servers 192.168.110.10;
       option routers 192.168.210.1;
       option broadcast-address 192.168.210.255;
       default-lease-time 600;
       max-lease-time 7200;
    }
  7. Inicie el servicio DHCP.
    sudo service isc-dhcp-server start
  8. Compruebe que se está ejecutando el servicio DHCP.
    service --status-all | grep dhcp
  9. Instale Apache, TFTP y el resto de componentes necesarios requeridos para el arranque de PXE.
    sudo apt-get install apache2 tftpd-hpa inetutils-inetd
  10. Verifique que el servidor TFTP y Apache se estén ejecutando.
    service --status-all | grep tftpd-hpa
    service --status-all | grep apache2
  11. Agregue las siguientes líneas al archivo /etc/default/tftpd-hpa.
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
  12. Agregue la siguiente línea al archivo /etc/inetd.conf.
    tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  13. Reinicie el servicio TFTP.
    sudo /etc/init.d/tftpd-hpa restart
  14. Copie o descargue el archivo ISO del instalador de NSX Edge en una carpeta temporal.
  15. 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/
  16. (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, busque la línea echo 'VMware NSX Edge' y 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.

  17. 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 --
  18. 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";
  19. 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.