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.
Procedura
- (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>
- 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
- Installare il software del server DHCP.
sudo apt-get install isc-dhcp-server -y
- Modificare il file /etc/default/isc-dhcp-server e aggiungere l'interfaccia che fornisce il servizio DHCP.
- (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.
- 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;
}
- Avviare il servizio DHCP.
sudo service isc-dhcp-server start
- Verificare che il servizio DHCP sia in esecuzione.
service --status-all | grep dhcp
- Installare Apache, TFTP e altri componenti necessari per l'avvio PXE.
sudo apt-get install apache2 tftpd-hpa inetutils-inetd
- Verificare che TFTP e Apache siano in esecuzione.
service --status-all | grep tftpd-hpa
service --status-all | grep apache2
- Aggiungere le righe seguenti nel file /etc/default/tftpd-hpa.
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
- 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
- Riavviare il servizio TFTP.
sudo /etc/init.d/tftpd-hpa restart
- Copiare o scaricare il file ISO del programma di installazione di NSX Edge in una cartella temporanea.
- 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/
- (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
- 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...
- Sostituire la stringa hash.
Non è necessario eseguire l'escape di alcun carattere speciale, ad esempio $, ', ", o \.
- 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.
- 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 --
- 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";
- 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.