BBSA 8.1 SP1 doesn't yet support provisioning of ESXi 4.1 using BBSA System Packages. This is required for CLM implementations.
Built on existing work by James Hollinger for VMware ESXi 4.0 - http://norris.bmc.com/wiki/BladeLogic_Server_Automation/Provisioning/ESXi, this method leverages VMware's support for Kickstart files to simplify the process.
Required Files: tcpserver.pl - extract to a directory on your PXE server.
Recommended reading: ESXi Installable and vCenter Server Setup Guide vCenter Server 4.1 from http://www.vmware.com/support/pubs/
Steps for installation (Assumes a fully working BBSA provisioning system, change directory names etc according to your configuration)
- On your PXE Server, install VMware vSphere CLI http://www.vmware.com/support/developer/vcli/
- Make the following changes to the tcpserver.pl files that was extracted
- Change line 24 to correctly point to the path of the vSphere CLI
- Change line 25 to point to the PXESTORE share
- Change line 56 so that the IP Address (in this case 18.104.22.168) is the IP Address of your Application Server
- 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
- Change lines 58 and 59 so that the operation to add the VM is correctly configured for your vSphere environment
- From a command prompt, execute tcpserver.pl. This will wait for a connection.
- Download vmware ISO file for ESXi 4.1, and extract to a subdirectory "initrd=esx4i" (yes that really is an equals sign!) to
- C:\Program Files\BMC Software\BladeLogic\8.1\PXE\tftproot\X86PC\pxelinux\initrd=esxif
- Create a System Package Type for ESXi 4.1 with the following parameters
- Create a System Package based on ESXi 4.1 (I have attached an export of the system package to help get things started)
- 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)
- In the Basic Config Stage, enter the following
- Computer Name, OM Server Name and password
- Kickstart network device should be vmnic0
- 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.
- 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
HOST = '??DATA_STORE_IP??'
PORT = 3333
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.send('HOST_NAME=' + os.uname() + '\n')
s.send('IP_ADDRESS=' + s.getsockname() + '\n')
- 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.
- Create and execute a provisioning job, once the server is provisioned, check the window that is running tcpserver.pl 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.