PXE/Netboot deployment of ESXi 5.0.0

From Teknologisk videncenter
Jump to: navigation, search

Current setup

On Mercantec we are trying to have a PXEboot deployment environment, to minimize the use of Optical Discs, both to save money and save the environment.
In our setup we already have a FOG server installed to deploy Windows images to your PC's with preinstalled SW. So the ESXi will be embedded in it.
Your DHCP server is setup to point next-server to the FOG servers IP and the bootfile is pxelinux.0. The TFTP root folder is located at /tftpboot

ESXi 5.0.0

Download the VMWare vSphere ESXi Hypervisor 5.0 ISO and extract all the file from the iso to /tftpboot/ESXi5.0/.

The folder should now look like:

[root@fog ESXi5.0]# ls
A.B00         BOOT.CFG      K.B00         NET-FORC.V00  SATA-ATA.V00  SCSI-MEG.V00  UHCI-USB.V00
ATA-PATA.V00  EFI           MBOOT.C32     NET-IGB.V00   SATA-SAT.V00  SCSI-MEG.V01  UPGRADE
ATA-PATA.V01  EFIBOOT.IMG   MENU.C32      NET-IXGB.V00  SATA-SAT.V01  SCSI-MEG.V02  USEROPTS.GZ
ATA-PATA.V02  EHCI-EHC.V00  MISC-CNI.V00  NET-NX-N.V00  SATA-SAT.V02  SCSI-MPT.V00  VMWARE-ESX-BASE-OSL.TXT
ATA-PATA.V03  IMA-QLA4.V00  MISC-DRI.V00  NET-R816.V00  SATA-SAT.V03  SCSI-MPT.V01  VMWARE-ESX-BASE-README
ATA-PATA.V04  IMGDB.TGZ     NET-BE2N.V00  NET-R816.V01  SCSI-ADP.V00  SCSI-MPT.V02  WEASELIN.I00
ATA-PATA.V05  IMGPAYLD.TGZ  NET-BNX2.V00  NET-S2IO.V00  SCSI-AIC.V00  SCSI-QLA.V00
ATA-PATA.V06  IPMI-IPM.V00  NET-BNX2.V01  NET-SKY2.V00  SCSI-BNX.V00  SCSI-QLA.V01
ATA-PATA.V07  IPMI-IPM.V01  NET-CNIC.V00  NET-TG3.V00   SCSI-FNI.V00  SCSI-AAC.V00
B.B00         IPMI-IPM.V02  NET-E100.V00  OHCI-USB.V00  SCSI-HPS.V00  S.V00
BLOCK-CC.V00  ISOLINUX.BIN  NET-E100.V01  SAFEBOOT.C32  SCSI-IPS.V00  TBOOT.B00
BOOT.CAT      ISOLINUX.CFG  NET-ENIC.V00  SATA-AHC.V00  SCSI-LPF.V00  TOOLS.T00

Because VMware requests the files in lowercase and the tftp daemon is case sensitive we need to rename them all to lowercase.
I used this script:

mv A.B00                      a.b00
mv ATA-PATA.V00               ata-pata.v00
mv ATA-PATA.V01               ata-pata.v01
mv ATA-PATA.V02               ata-pata.v02
mv ATA-PATA.V03               ata-pata.v03
mv ATA-PATA.V04               ata-pata.v04
mv ATA-PATA.V05               ata-pata.v05
mv ATA-PATA.V06               ata-pata.v06
mv ATA-PATA.V07               ata-pata.v07
mv B.B00                      b.b00
mv BLOCK-CC.V00               block-cc.v00
mv BOOT.CAT                   boot.cat
mv BOOT.CFG                   boot.cfg
mv EFI                        efi
mv EFIBOOT.IMG                efiboot.img
mv EHCI-EHC.V00               ehci-ehc.v00
mv IMA-QLA4.V00               ima-qla4.v00
mv IMGDB.TGZ                  imgdb.tgz
mv IMGPAYLD.TGZ               imgpayld.tgz
mv IPMI-IPM.V00               ipmi-ipm.v00
mv IPMI-IPM.V01               ipmi-ipm.v01
mv IPMI-IPM.V02               ipmi-ipm.v02
mv ISOLINUX.BIN               isolinux.bin
mv ISOLINUX.CFG               isolinux.cfg
mv K.B00                      k.b00
mv MBOOT.C32                  mboot.c32
mv MENU.C32                   menu.c32
mv MISC-CNI.V00               misc-cni.v00
mv MISC-DRI.V00               misc-dri.v00
mv NET-BE2N.V00               net-be2n.v00
mv NET-BNX2.V00               net-bnx2.v00
mv NET-BNX2.V01               net-bnx2.v01
mv NET-CNIC.V00               net-cnic.v00
mv NET-E100.V00               net-e100.v00
mv NET-E100.V01               net-e100.v01
mv NET-ENIC.V00               net-enic.v00
mv NET-FORC.V00               net-forc.v00
mv NET-IGB.V00                net-igb.v00
mv NET-IXGB.V00               net-ixgb.v00
mv NET-NX-N.V00               net-nx-n.v00
mv NET-R816.V00               net-r816.v00
mv NET-R816.V01               net-r816.v01
mv NET-S2IO.V00               net-s2io.v00
mv NET-SKY2.V00               net-sky2.v00
mv NET-TG3.V00                net-tg3.v00
mv OHCI-USB.V00               ohci-usb.v00
mv SAFEBOOT.C32               safeboot.c32
mv SATA-AHC.V00               sata-ahc.v00
mv SATA-ATA.V00               sata-ata.v00
mv SATA-SAT.V00               sata-sat.v00
mv SATA-SAT.V01               sata-sat.v01
mv SATA-SAT.V02               sata-sat.v02
mv SATA-SAT.V03               sata-sat.v03
mv SCSI-ADP.V00               scsi-adp.v00
mv SCSI-AIC.V00               scsi-aic.v00
mv SCSI-BNX.V00               scsi-bnx.v00
mv SCSI-FNI.V00               scsi-fni.v00
mv SCSI-HPS.V00               scsi-hps.v00
mv SCSI-IPS.V00               scsi-ips.v00
mv SCSI-LPF.V00               scsi-lpf.v00
mv SCSI-MEG.V00               scsi-meg.v00
mv SCSI-MEG.V01               scsi-meg.v01
mv SCSI-MEG.V02               scsi-meg.v02
mv SCSI-MPT.V00               scsi-mpt.v00
mv SCSI-MPT.V01               scsi-mpt.v01
mv SCSI-MPT.V02               scsi-mpt.v02
mv SCSI-QLA.V00               scsi-qla.v00
mv SCSI-QLA.V01               scsi-qla.v01
mv SCSI-AAC.V00               scsi-aac.v00
mv S.V00                      s.v00
mv TBOOT.B00                  tboot.b00
mv TOOLS.T00                  tools.t00
mv UHCI-USB.V00               uhci-usb.v00
mv UPGRADE                    upgrade
mv USEROPTS.GZ                useropts.gz
mv VMWARE-ESX-BASE-OSL.TXT    vmware-esx-base-osl.txt
mv VMWARE-ESX-BASE-README     vmware-esx-base-readme
mv WEASELIN.I00               weaselin.i00

#Do the same for the upgrade folder
cd upgrade

mv ESXIMAGE.ZIP esximage.zip
mv EXTLINUX     extlinux
mv ISOINFO      isoinfo
mv MBR.BIN      mbr.bin
mv MCOPY        mcopy
mv METADATA.XML metadata.xml
mv METADATA.ZIP metadata.zip
mv PRECHECK.PY  precheck.py
mv PREP.PY      prep.py
mv PROFILE.XML  profile.xml

pxelinux.cfg

Now we need to change /tftpboot/pxelinux.cfg/default to include the ESXi Installer:

LABEL esx.install.5
        kernel ESXi5.0/mboot.c32
        append -c ESXi5.0/boot.cfg
        MENU LABEL Install VMWare ESXi 5.0
        TEXT HELP
        This will install VMware ESXi 5.0
        ENDTEXT

boot.cfg

Now we need to append /ESXi5.0/ to all the paths in /tftpboot/ESXi5.0/boot.cfg:

bootstate=0
title=Loading ESXi installer
kernel=/ESXi5.0/tboot.b00
kernelopt=runweasel
modules=/ESXi5.0/b.b00 ---  /ESXi5.0/useropts.gz ---  /ESXi5.0/k.b00 ---  /ESXi5.0/a.b00 ---  /ESXi5.0/ata-pata.v00 ---  /ESXi5.0/ata-pata.v01 ---  /ESXi5.0/ata-pata.v02 ---  /ESXi5.0/ata-pata.v03 ---  /ESXi5.0/ata-pata.v04 ---  /ESXi5.0/ata-pata.v05 ---  /ESXi5.0/ata-pata.v06 ---  /ESXi5.0/ata-pata.v07 ---  /ESXi5.0/block-cc.v00 ---  /ESXi5.0/ehci-ehc.v00 ---  /ESXi5.0/s.v00 ---  /ESXi5.0/weaselin.i00 ---  /ESXi5.0/ima-qla4.v00 ---  /ESXi5.0/ipmi-ipm.v00 ---  /ESXi5.0/ipmi-ipm.v01 ---  /ESXi5.0/ipmi-ipm.v02 ---  /ESXi5.0/misc-cni.v00 ---  /ESXi5.0/misc-dri.v00 ---  /ESXi5.0/net-be2n.v00 ---  /ESXi5.0/net-bnx2.v00 ---  /ESXi5.0/net-bnx2.v01 ---  /ESXi5.0/net-cnic.v00 ---  /ESXi5.0/net-e100.v00 ---  /ESXi5.0/net-e100.v01 ---  /ESXi5.0/net-enic.v00 ---  /ESXi5.0/net-forc.v00 ---  /ESXi5.0/net-igb.v00 ---  /ESXi5.0/net-ixgb.v00 ---  /ESXi5.0/net-nx-n.v00 ---  /ESXi5.0/net-r816.v00 ---  /ESXi5.0/net-r816.v01 ---  /ESXi5.0/net-s2io.v00 ---  /ESXi5.0/net-sky2.v00 ---  /ESXi5.0/net-tg3.v00 ---  /ESXi5.0/ohci-usb.v00 ---  /ESXi5.0/sata-ahc.v00 ---  /ESXi5.0/sata-ata.v00 ---  /ESXi5.0/sata-sat.v00 ---  /ESXi5.0/sata-sat.v01 ---  /ESXi5.0/sata-sat.v02 ---  /ESXi5.0/sata-sat.v03 ---  /ESXi5.0/scsi-aac.v00 ---  /ESXi5.0/scsi-adp.v00 ---  /ESXi5.0/scsi-aic.v00 ---  /ESXi5.0/scsi-bnx.v00 ---  /ESXi5.0/scsi-fni.v00 ---  /ESXi5.0/scsi-hps.v00 ---  /ESXi5.0/scsi-ips.v00 ---  /ESXi5.0/scsi-lpf.v00 ---  /ESXi5.0/scsi-meg.v00 ---  /ESXi5.0/scsi-meg.v01 ---  /ESXi5.0/scsi-meg.v02 ---  /ESXi5.0/scsi-mpt.v00 ---  /ESXi5.0/scsi-mpt.v01 ---  /ESXi5.0/scsi-mpt.v02 ---  /ESXi5.0/scsi-qla.v00 ---  /ESXi5.0/scsi-qla.v01 ---  /ESXi5.0/uhci-usb.v00 ---  /ESXi5.0/tools.t00 ---  /ESXi5.0/imgdb.tgz ---  /ESXi5.0/imgpayld.tgz
build=
updated=0

And thats all you need to do. Try PXE boot a PC and select the new menu item in your boot menu.

KickStart File

If you want is to install unattended use a KS file. Refer to the file in boot.cfg just after modules=/ESXi5.0/b.b00 with ks=fog.tekkom.dk/ESXi5.0.ks

My ESXi5.0.ks file looks like:

#
# Sample scripted installation file
#

# Accept the VMware End User License Agreement
vmaccepteula

# Set the root password for the DCUI and Tech Support Mode
rootpw Toor1234

# Clears the entire disk
clearpart --firstdisk --all --overwritevmfs

# Install on the first local disk available on machine
install --firstdisk --overwritevmfs

# Set the network to DHCP on the first network adapater
network --bootproto=dhcp --device=vmnic0

# Restarts after install.
reboot

# Added to test failures
paranoid

#Enable SSH service when the host boots for the first time
%firstboot --interpreter=busybox

esxcfg-nas --add --host 192.168.139.103 --share /data/raid/iso ISOStore >> /var/log/test.log

ESXi Links

https://www.vmware.com/files/pdf/products/vsphere/VMware-vSphere-Evaluation-Guide-4-Auto-Deploy.pdf
http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-installation-setup-guide.pdf
http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.vsphere.install.doc_50/GUID-61A14EBB-5CF3-43EE-87EF-DB8EC6D83698.html