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.
Procedimiento
- (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 administrador:
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>
- 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
- Instale el software de servidor DHCP.
sudo apt-get install isc-dhcp-server -y
- Edite el archivo /etc/default/isc-dhcp-server y agregue la interfaz que suministra el servicio DHCP.
- (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.
- 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;
}
- Inicie el servicio DHCP.
sudo service isc-dhcp-server start
- Compruebe que se está ejecutando el servicio DHCP.
service --status-all | grep dhcp
- Instale Apache, TFTP y el resto de componentes necesarios requeridos para el arranque de PXE.
sudo apt-get install apache2 tftpd-hpa inetutils-inetd
- Verifique que el servidor TFTP y Apache se estén ejecutando.
service --status-all | grep tftpd-hpa
service --status-all | grep apache2
- Agregue las siguientes líneas al archivo /etc/default/tftpd-hpa.
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
- 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
- Reinicie el servicio TFTP.
sudo /etc/init.d/tftpd-hpa restart
- Copie o descargue el archivo ISO del instalador de NSX Edge en una carpeta temporal.
- 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/
- (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
- Modifique la contraseña raíz, 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...
- Reemplace la cadena hash.
No es necesario escapar ningún carácter especial, como $, ', " o \.
- Agregue el comando usermod al archivo preseed.cfg para establecer la contraseña del usuario raíz, del administrador 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 raíz 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.
- 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=xenial --
- 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";
- 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.