Provisioning ESXi 4.1 with BladeLogic 8.1 SP1

Version 3

    The Problem

    BBSA 8.1 SP1 doesn't yet support provisioning of ESXi 4.1 using BBSA System Packages. This is required for CLM implementations.

    The Solution

    Built on existing work by James Hollinger for VMware ESXi 4.0 -, this method leverages VMware's support for Kickstart files to simplify the process.


    Required Files: - extract to a directory on your PXE server.


    Recommended reading: ESXi Installable and vCenter Server Setup Guide vCenter Server 4.1 from


    Steps for installation (Assumes a fully working BBSA provisioning system, change directory names etc according to your configuration)

    1. On your PXE Server, install VMware vSphere CLI
    2. Make the following changes to the files that was extracted
        1. Change line 24 to correctly point to the path of the vSphere CLI
        2. Change line 25 to point to the PXESTORE share
        3. Change line 56 so that the IP Address (in this case is the IP Address of your Application Server
        4. Change line 56 so that the port number (in this case 9131) is the port number of the Application Server. The default for BladeLogic is 9831
        5. Change lines 58 and 59 so that the operation to add the VM is correctly configured for your vSphere environment
    3. From a command prompt, execute This will wait for a connection.
    4. Download vmware ISO file for ESXi 4.1, and extract to a subdirectory "initrd=esx4i" (yes that really is an equals sign!) to
      1. C:\Program Files\BMC Software\BladeLogic\8.1\PXE\tftproot\X86PC\pxelinux\initrd=esxif
      2. C:\pxestore\esxi41
    5. Create a System Package Type for ESXi 4.1 with the following parameters
      1. Installer Location: initrd=esx4i
      2. RSCD Installer Configuration: leave blank
      3. Boot Kernel File name: mboot.c32
      4. Boot Image File name: esx4i/vmkboot.gz
        System Package Selection.png
    6. Create a System Package based on ESXi 4.1 (I have attached an export of the system package to help get things started)
      1. In the Disk Partition Stage, choose "Use Script", and enter "autopart --firstdisk --overwritevmfs" (This entry will be ignored, but something needs to be entered to create the system package)
      2. In the Basic Config Stage, enter the following
        1. Computer Name, OM Server Name and password
        2. Kickstart network device should be vmnic0
        3. Boot kernel parameters should be
          ks=http://??DATA_STORE.LOCATION??/??DATA_STORE.VIRTUAL_DIR??/??MAC_ADDRESS?? --- initrd=esx4i/vmkernel.gz --- initrd=esx4i/sys.vgz --- initrd=esx4i/cim.vgz --- initrd=esx4i/ienviron.vgz --- initrd=esx4i/install.vgz
          Note: Although BladeLogic will introduce a ks= entry, this is ignored by ESX unless it is the first parameter, which is why it is introduced here.
          system package basic config.png
      3. In the Kickstart entries stage, select  "Customize the kickstart file",and enter the following
        rootpw --iscrypted ??ROOT_PASSWORD??
        clearpart --alldrives --overwritevmfs
        autopart --firstdisk --overwritevmfs
        install url http://??DATA_STORE_IP??/??DATA_STORE.VIRTUAL_DIR??/ESX41i
        network --bootproto=dhcp --device=vmnic0
        %firstboot --unsupported --interpreter=python
        import socket
        import os

        HOST = '??DATA_STORE_IP??'
        PORT = 3333
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((HOST, PORT))
        s.send('Now started')





    s.send('HOST_NAME=' + os.uname()[1] + '\n')

    s.send('IP_ADDRESS=' + s.getsockname()[0] + '\n')



    system package kickstart entries.png

    1. Boot and discover your bare metal hardware. Once you see the device appear in "Imported", open up the device, and verify that it is x64 (64 bit), Intel based.
    2. Create and execute a provisioning job, once the server is provisioned, check the window that is running to verify that it has received a message. It will run bmiwin which will register the provisioning with BladeLogic, and the job will appear as complete.



    The original ESXi 4.0 solution introduced a binary, and needed an extra boot file to be provided for ESXi provisioning. This solution is easier to implement because it uses the kickstart file, and a short python script in that file to do the job of communicating to the PXE server.