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-T Data Center, 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-T Data Center 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. Il server PXE deve avere due interfacce, una per la comunicazione esterna e un'altra per fornire servizi IP DHCP e TFTP.

    If you have multiple management networks, you can add static routes to the other networks from the NSX-T Data Center appliance.

  • 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.
    sudo apt-get install isc-dhcp-server -y
  4. Modificare il file /etc/default/isc-dhcp-server e aggiungere l'interfaccia che fornisce il servizio DHCP.
    INTERFACES="eth1"
  5. (Facoltativo) Se si desidera che questo server DHCP sia il server DHCP ufficiale per la rete locale, rimuovere il commento dalla riga autorevole nel file /etc/dhcp/dhcpd.conf.
    ...
    authoritative;
    ...
  6. Nel file /etc/dhcp/dhcpd.conf, definire le impostazioni DHCP per la rete PXE.
    Ad esempio:
    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. Avviare il servizio DHCP.
    sudo service isc-dhcp-server start
  8. Verificare che il servizio DHCP sia in esecuzione.
    service --status-all | grep dhcp
  9. Installare Apache, TFTP e altri componenti necessari per l'avvio PXE.
    sudo apt-get install apache2 tftpd-hpa inetutils-inetd
  10. Verificare che TFTP e Apache siano in esecuzione.
    service --status-all | grep tftpd-hpa
    service --status-all | grep apache2
  11. Aggiungere le righe seguenti nel file /etc/default/tftpd-hpa.
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
  12. Aggiungere la riga seguente nel file /etc/inetd.conf.
    tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  13. Riavviare il servizio TFTP.
    sudo /etc/init.d/tftpd-hpa restart
  14. Copiare o scaricare il file ISO del programma di installazione di NSX Edge in una cartella temporanea.
  15. 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/
  16. (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, cercare la riga echo 'VMware NSX Edge' e 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.

  17. 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=xenial --
  18. 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";
  19. 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 Install NSX Edge Automatically via ISO File.