Follow Me Icons


Follow @KendrickColeman on TwitterConnect on LinkedInWatch My Videos on YouTubeFollow me on FacebookCheck Out My Projects on GitHubStay Up To Date with RSS


BSA 728x90 Center Banner

ESXi 4.1 Kickstart Install - WIP

For the past two weeks I've been trying to get an ESXi 4.1 Kickstart script created. It's currently a work in progress (WIP), but I'm letting it rest for a little while. I've been testing this script out on an ESXi 4.1 VM w/ 10 NICs to try and simulate my current environment. My current environment resembles my vSphere Host NIC Design - 10 NICs post.



The bulk of the script is working. There are a few parts where it's not working and you are more than welcome to try it out. I started this project so I could atleast get myself familiar with kickstarting an installation and diving a bit deeper into the ESXi commands. I tried a bunch of different options out there from ESX 4.0 kick-scripts and alot of stuff has changed in the syntax. Keep that in mind if you are developing your own script.


Thanks to Justin Guidroz (@juicelsu009 , Geaux Virtual) for putting up with all my questions. Justin has hacked the EDA a bit for ESXi 4.1 and has customized some more cool scripts, but I'm sure we can all expect EDA to fully support 4.1 in the near future. That's a big reason why I'm putting all this work to rest. Also check out Setting up vSphere ESXi 4.1 Scripted Installation from @virtualkenneth.


rootpw changeme
install url
autopart --firstdisk --overwritevmfs

#Network install type
network --bootproto=static --addvmportgroup=false --device=vmnic0 --ip= --netmask= --gateway=  --nameserver= --hostname=ESXi3.FQDN


%firstboot --unsupported --interpreter=busybox

#Assign VLAN to Management PortGroup
esxcfg-vswitch -v 50 -p 'Management Network' vSwitch0

#Add vMotion Portgroup to vSwitch0
esxcfg-vswitch -A vMotion vSwitch0

#Add pNIC vmnic6 to vSwitch0
esxcfg-vswitch -L vmnic6 vSwitch0

#Assign ip address to vMotion vmk1
esxcfg-vmknic -a -i -n -p vMotion

#Assign VLAN to vMotion PortGroup
esxcfg-vswitch -v 51 -p vMotion vSwitch0

sleep 10

#set vMotion to vmk
vim-cmd hostsvc/vmotion/vnic_set vmk1

#Set NIC order policy for port groups
vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic0 --nicorderpolicy-standby=vmnic6 vSwitch0 'Management Network'

vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic6 --nicorderpolicy-standby=vmnic0 vSwitch0 vMotion

#Add new vSwitch for IP Storage
esxcfg-vswitch -a vSwitch_IP-SAN

#Set MTU to 9000 for jumbo frames on vSwitch
esxcfg-vswitch -m 9000 vSwitch_IP-SAN

#Add Portgroup to vSwitch_IP-SAN
esxcfg-vswitch -A NetApp_FAS2020a vSwitch_IP-SAN

#Assign IP address to vmknic
esxcfg-vmknic -a -i -n -m 9000 NetApp_FAS2020a

#Add NICs to new vSwitch
esxcfg-vswitch -L vmnic2 vSwitch_IP-SAN

#Add NICs to new vSwitch
esxcfg-vswitch -L vmnic7 vSwitch_IP-SAN

vim-cmd hostsvc/net/refresh

sleep 10

vim-cmd hostsvc/net/vswitch_setpolicy -–nicteaming-policy=loadbalance_ip vSwitch_IP-SAN

#Add NFS datastores
esxcfg-nas -a -o -s /FAS2020a_Node1_NFS_A FAS2020a_Node1_NFS_A
esxcfg-nas -a -o -s /FAS2020a_Node1_NFS_B FAS2020a_Node1_NFS_B
esxcfg-nas -a -o -s /FAS2020a_Node2_NFS_A FAS2020a_Node2_NFS_A

#Adding the FT Network
esxcfg-vswitch -a vSwitch_FT
esxcfg-vswitch -A Fault_Tolerance vSwitch_FT
esxcfg-vswitch -L vmnic4 vSwitch_FT
esxcfg-vswitch -L vmnic9 vSwitch_FT

esxcfg-vmknic -a -i -n -p Fault_Tolerance

vim-cmd hostsvc/net/portgroup_set --nicorderpolicy-active=vmnic4 --nicorderpolicy-standby=vmnic9 vSwitch_FT Fault_Tolerance

vim-cmd hostsvc/advopt/update FT.Vmknic string vmk3

vim-cmd hostsvc/net/refresh

#Set DNS
vim-cmd hostsvc/net/dns_set --ip-addresses=,

# Set NFS advanced Configuration Settings
esxcfg-advcfg -s 30 /Net/TcpipHeapSize
esxcfg-advcfg -s 120 /Net/TcpipHeapMax
esxcfg-advcfg -s 10 /NFS/HeartbeatMaxFailures
esxcfg-advcfg -s 12 /NFS/HeartbeatFrequency
esxcfg-advcfg -s 5 /NFS/HeartbeatTimeout
esxcfg-advcfg -s 64 /NFS/MaxVolumes

# NTP time config - NOT WORKING!!
echo "Configuring NTP"
echo restrict default kod nomodify notrap noquerynopeer > /etc/ntp.conf
echo restrict >> /etc/ntp.conf
echo server >> /etc/ntp.conf
echo server >> /etc/ntp.conf
echo driftfile /var/lib/ntp/drift >> /etc/ntp.conf
/sbin/chkconfig –-level 345 ntpd on
/etc/init.d/ntpd start

#enable SSH TechSupportMode - shouldn't use this, was just a test
vim-cmd hostsvc/enable_remote_tsm
vim-cmd hostsvc/start_remote_tsm

vim-cmd hostsvc/net/refresh

#grep ^admins: /etc/group > /dev/null || groupadd admins
#useradd -g admins -c LocalESXAccount LocalESX
#echo mypassword | passwd --stdin LocalESX


Remember these have  to be edited in something like Notepad++

Related Items