PXE è costituito da diversi componenti: DHCP, HTTP e TFTP. Questa procedura illustra come configurare un server PXE in Ubuntu.

DHCP distribuisce dinamicamente le impostazioni IP ai componenti NSX, ad esempio NSX Edge. In un ambiente PXE, il server DHCP consente a NSX Edge di richiedere e ricevere automaticamente un indirizzo IP.

TFTP è un protocollo di trasferimento file. Il server TFTP ascolta sempre i client PXE nella rete. Quando rileva un client PXE di rete che richiede servizi PXE, fornisce il file ISO del componente di NSX e le impostazioni di installazione contenute in un file preseed.

Prerequisiti

  • Nell'ambiente di distribuzione deve essere disponibile un server PXE. Il server PXE può essere configurato in qualsiasi distribuzione Linux.

    Se si dispone di più reti di gestione, è possibile aggiungere route statiche alle altre reti dall'appliance NSX.

  • Verificare che il file di configurazione preseed abbia i parametri net.ifnames=0 e biosdevname=0 impostati dopo -- in modo da persistere dopo il riavvio.

Procedura

  1. (Facoltativo) Utilizzare un file kickstart per configurare un nuovo servizio TFTP o DHCP in un server Ubuntu.
    Un file kickstart è un file di testo contenente i comandi CLI eseguiti nell'appliance dopo il primo avvio.
    Denominare il file kickstart in base al server PXE a cui fa riferimento. Ad esempio:
    nsxcli.install
    Il file deve essere copiato nel server Web, ad esempio all'indirizzo /var/www/html/nsx-edge/nsxcli.install.

    Nel file kickstart è possibile aggiungere comandi CLI. Ad esempio, per configurare l'indirizzo IP dell'interfaccia di gestione:

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

    Per modificare la password dell'utente amministratore:

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

    Se si specifica una password nel file preseed.cfg, utilizzare la stessa password nel file kickstart. In caso contrario, utilizzare la password predefinita, che è "default".

    Per unire NSX Edge al piano di gestione:

    join management-plane <manager-ip> thumbprint <manager-thumbprint> username <manager-username> password <manager password>
  2. Creare due interfacce, una per la gestione e un'altra per i servizi DHCP e TFTP.
    Assicurarsi che l'interfaccia DHCP/TFTP si trovi nella stessa subnet in cui risiede NSX Edge.

    Ad esempio, se le interfacce di gestione di NSX Edge si trovano nella subnet 192.168.210.0/24, posizionare eth1 nella stessa subnet.

    # 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. Installare il software del server DHCP e configurare le impostazioni necessarie per configurare il server PXE. Per ulteriori dettagli, vedere la documentazione di Linux.
  4. Installare il server Apache e TFTP e gli altri componenti necessari per configurare il server PXE.
  5. Copiare o scaricare il file ISO del programma di installazione di NSX Edge in una cartella temporanea.
  6. Montare il file ISO e copiare i componenti dell'installazione nel server TFTP e nel server 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. (Facoltativo) Modificare il file /var/www/html/nsx-edge/preseed.cfg per modificare le password crittografate.
    È possibile utilizzare uno strumento Linux come mkpasswd per creare un hash della password.
    sudo apt-get install whois
    sudo mkpasswd -m sha-512
    
    Password: 
    $6$SUFGqs[...]FcoHLijOuFD
    1. Modificare la password root, modificare /var/www/html/nsx-edge/preseed.cfg e cercare la riga seguente:
      d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
    2. Sostituire la stringa hash.
      Non è necessario eseguire l'escape di alcun carattere speciale, ad esempio $, ', ", o \.
    3. Aggiungere il comando usermod a preseed.cfg per impostare la password per root, admin o entrambi.
      Ad esempio, aggiungere il comando seguente.
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' root; \
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' admin; \

      La stringa hash è un esempio. È necessario eseguire l'escape di tutti i caratteri speciali. La password root nel primo comando usermod sostituisce la password impostata in d-i passwd/root-password-crypted password $6$tgm....

      Se si utilizza il comando usermod per impostare la password, all'utente non verrà richiesto di cambiarla al primo accesso. In caso contrario, l'utente dovrà modificarla password al primo accesso.

  8. Aggiungere le righe seguenti nel file /var/lib/tftpboot/p wiminux.cfg/default.

    Sostituire 192.168.210.82 con l'indirizzo IP del server 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. Aggiungere le righe seguenti al file /etc/dhcp/dhcpd.conf.

    Sostituire 192.168.210.82 con l'indirizzo IP del server DHCP.

    allow booting;
    allow bootp;
    
    next-server 192.168.210.82; #Replace this IP address
    filename "pxelinux.0";
  10. Riavviare il servizio DHCP.
    sudo service isc-dhcp-server restart
    Nota: Se viene restituito un errore, ad esempio: "stop: Unknown instance: start: Job failed to start", eseguire sudo /etc/init.d/isc-dhcp-server stop, quindi sudo /etc/init.d/isc-dhcp-server start. Il comando sudo /etc/init.d/isc-dhcp-server start restituisce informazioni sull'origine dell'errore.

Operazioni successive

Installare NSX Edge su bare-metal utilizzando un file ISO. Vedere Installazione automatica di NSX Edge tramite il file ISO.