ESX/VIB

From Omnia
< ESX
Revision as of 21:27, 22 July 2014 by Kenneth (talk | contribs) (→‎5.x VIB)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 .