ESX/VIB
< ESX
5.x VIB
Valid Files
Valid locations are based on "certification" level.
Valid Certified and Accepted Level Files:
Can put files just about anywhere
Valid Partner Level Files: (also includes all community level paths)
/etc/vmware/vmware.lic /etc/vmware/support /etc/vmware/oem.xml /etc/vmware/backup.conf /usr/lib/vmware/hostd/docroot/client/customLinks.xml /etc/init\.d/.+
Valid Community Level Files:
/etc/vmware/shutdown/shutdown\.d/.+ /etc/vmware/pciid/.+ /etc/vmware/vm-support/.+ /etc/vmware/firewall/.+ /etc/vmware/service/.+ /etc/vmware/driver.map.d/.+ /etc/cim/.+ /etc/config/.+ /opt/.+ # We really want people to put their binaries in /opt/ as much as possible. /usr/lib/cim/.+ /usr/lib/pycim/.+ /usr/lib/hostprofiles/plugins/.+ /usr/lib/hostprofiles/locale/.+ /usr/lib/vmware/.+ /usr/lib/vmware-debug/.+ /usr/libexec/jumpstart/plugins/.+ /usr/share/hwdata/driver.pciids.d/.+ /var/lib/sfcb/registration/.+
VIB Descriptor
descriptor.xml:
<vib> <name>myvib</name> <version>1.0-1</version> <vendor>My Company</vendor> <summary>Single line summary</summary> <description>Multi line description</description> <relationships> <depends/> <conflicts/> <replaces/> <provides/> <compatibleWith/> </relationships> <system-requires> <maintenance-mode>false</maintenance-mode> </system-requires> <!-- acceptance levels: certified / accepted / partner / community --> <acceptance-level>community</acceptance-level> <!-- not required, but avoid reboot: --> <live-install-allowed>true</live-install-allowed> <live-remove-allowed>true</live-remove-allowed> </vib>
Build VIB
vibauthor -c -d descriptor.xml -t [src]
Note: This will create myvib-1.0-1.vib from the example above.
Sign VIB
vibauthor -s -k vmware.key -r vmware.cert -v myvib-1.0-1.vib
Note: May need to add '--force' if you are resigning an already signed VIB. Create Offline Bundle
rm -rf tmpout ; mkdir tmpout vibpublish -g -t "ESXi,5.*" -c default -s myvib-1.0-1.vib -o tmpout --create-offline-bundle myvib.zip -n MyCompany --vendor-code XXX
4.x VIB
NOTE: These same instructions will build a VIB that will work on ESX 4.x.
Valid Files
SUPPORTED DIRECTORIES
The following directories are currently in the permitted set for esx-portable VIB file layout. Directory specifications, when they end with a wildcard (*), permit any subdirectories and files under the last named directory. For example, ’/etc/cim/*’ will permit any files or sub-directories under etc/cim/, but not under /etc/. For directory specification that do not have a wildcard, no subdirec- tories are permitted and files must exist only at the level of the last directory specified. For example, ’usr/sbin’ can have files in /usr/sbin/, but not in /usr/. To allow files in /usr/ as well, the directory must be specified explicitly in the model: ’usr’.
VIB/ etc/cim/* etc/init.d etc/vmware/init/init.d etc/vmware/init/manifests etc/vmware/pciid/ lib/cim/* usr/lib/ext/* usr/lib/vmware/vmkmod/ usr/lib/vmware-debug/vmkmod/ usr/sbin var/lib/sfcb/stage/mofs/root/cimv2 var/lib/sfcb/stage/mofs/root/config var/lib/sfcb/stage/mofs/root/interop var/lib/sfcb/stage/mofs/* var/lib/sfcb/stage/regs usr/lib/vmware/hostd/docroot/client
VIB Descriptor
descriptor.xml:
<?xml version="1.0" ?> <metadata> <required> <package> <name>myvib</name> <version>1.0-1</version> <summary>Single line summary</summary> </package> <maintainer> <vendor>My Comapny</vendor> <vendor-email>support@mycompany.com</vendor-email> </maintainer> <install> <target-product release="4.*">ESX</target-product> <target-product release="4.*">ESXi</target-product> <reboot-required>True</reboot-required> <hostd-restart>False</hostd-restart> <maintenance-mode>False</maintenance-mode> </install> </required> <optional> <package> <depends></depends> <conflicts></conflicts> <replaces></replaces> <provides></provides> <description> <para>This is my multi paragraph description.</para> <para>What else can I say?</para> </description> <software-tags> <tag></tag> </software-tags> </package> </optional> </metadata>
Build VIB
vibauthor -c 'esx-portable' -m descriptor.xml -t [src] -v myvib.vib
Sign VIB
vibauthor -s -k vmware.key -r vmware.cert -v myvib.vib
Note: May need to add '--force' if you are resigning an already signed VIB.
Offline Bundle Bulletin
bulletin.xml
<?xml version="1.0" ?> <bulletin> <id>myvib-101</id> <vendor>My Company</vendor> <summary>My package summary</summary> <severity>general</severity> <category>general</category> <releaseType>extension</releaseType> <description>Description of this package.</description> <kbUrl>http://support.mycompany.com/kb/1</kbUrl> <contact>support@mycomapny.com</contact> <releaseDate>2012-01-02T01:01:01</releaseDate> <platforms> <softwarePlatform productLineID="esx" version="4.*" /> <softwarePlatform productLineID="embeddedEsx" version="4.*" /> </platforms> <vibList> <!-- obtain the VIBID from: vibauthor -i -v myvib.vib --> <vibID>cross_myvib_1.0-1</vibID> </vibList> </bulletin>
Note: Obtain the VIBID from: vibauthor -i -v myvib.vib
Create Offline Bundle
vibpublish -g -t "ESX,4.*" -t "ESXi,4.*" -b bulletin.xml -e offline-bundle.zip -v .