I have to script the installation of ESXi patches on a group of servers (every quarter) which do not have access to the Internet, so Update Manager is not an option. I would like to be able to identify via a script if a given patch has already been installed so that I can skip it.
On ESX 3.5, you could look to see if it existed in /etc/vmware/patchdb/patch_name.xml, but I can't find anything similar in ESXi 5.0.
The esxcli software vib commands don't seem accept/respond with the zip file names as far as I can tell. They seem to dig deeper into the zip files than I want to go.
The closest thing I can find is to "grep -c patchname /var/log/esxupdate.log" for a given patch (e.g. ESXi-500-201207001) and if it exists in the file then it was probably installed. Also, there is no clean text I can search on like "Patch ESXi-500-xxxxxxxxx sucessfully installed" which slows me down. This approach has problems if the script gets interrupted in the middle of installing a patch. When it gets rerun, it will think the patch as already been installed and we could in fact lose a patch.
If there is no way to identify this programmatically, I will have to always install every patch in my quarterly updates (until the patch becomes obsolete). I can't depend on my user to always run these quarterly updates, so I have to be able to catch his system up, if he missed a quarter.
Appreciate any suggerstions