you could created 55 new ks.cfg files place it in your media, then edit the isolinux.cfg file. This way, when the system boots, you arrow down the server you wish to build and you good.
An example of our isolinux.cfg (we have about 60 in ours)
default menu.c32 menu title VMware VMvisor Boot Menu timeout 3000 label - menu label ^Our Company Installs: menu disable label phx03536 menu label ^Install hostmane.domainname.com menu indent 1 kernel mboot.c32 append vmkboot.gz ks=cdrom:/ks1.CFG --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.vgz --- install.vgz label phx03537 menu label ^Install hostmane.domainname.com menu indent 1 kernel mboot.c32 append vmkboot.gz ks=cdrom:/ks2.CFG --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.vgz --- install.vgz
Right, that would be option a. in the original post, but then if I have to make a change, I have to change it in 55 kickstart files. I'm hoping to avoid that if I can.
I'm trying to find a way to keep the bulk of the scripts in as few files as possible.
I think you're going to have to have manual intervention how ever you decide. If you have Enterprise Plus, you can you autodeploy. You can use PXE, but again there is still files that need massaging every now and again.
We don't have Enterprise Plus and haven't explored PXE just yet. So, for us, adding multiple files into a single CD image makes it a bit less cumbersome.
I don't have Enterprise Plus and I don't think I can use the PXE option. If I have to write 55 scripts then that is what I'll do, but it just seem like there should be an easier/better way.
Just to follow up on this, I did end up using a Python script that one of my co-workers was able to get working. The first thing I did was to update isolinux.cfg to pass in my "parameters". This approach has been already been documented on other sites: http://www.virtuallyghetto.com/2011/05/semi-interactive-automated-esxi.html.
APPEND -c boot.cfg ks=cdrom:/KICKSTART/KS.CFG HOSTNAME=host_name IP=220.127.116.11
HOSTNAME=host_name and IP=18.104.22.168 end up being written to /var/log/esxi_install.log which persists after the first boot. My problem occurred when I couldn't get to these values using traditional Linux commands (awk, sed, cut). I could use cat and grep, but I couldn't get any closer in the ks.cfg execution.
We ended up using heredoc (cat > /tmp/getargs.py << EOF) to create a 25 line python script right in my ks.cfg file which would read the esxi_install.log file, parse my variable strings and write them to another file (/tmp/args.cfg).
args.cfg ended up looking like:
After creating getargs.py, I could execute "python /tmp/getargs.py" and then "source args.cfg" from my ks.cfg file. My variables (HOSTNAME and IP) were then accessible in the rest of my kickstart file and I was off and running without writing 55 separate ks.cfg files for each host.