An application bundle is a gzipped tar file (.tgz, open via the "tar xvfz <file>" command) that contains at a minimum the following layout:
appcfg.xml deploy (a directory) bin (a directory) <application binary files> etc <application configuration files>
The appcfg.xml file describes the contents of the application bundle. It is an xml V1.1 document with a simple layout. For example:
<virtualIp ver="1.4.0.0"> <programNames prog0="vip" /> <redundancyModel value="3+1" /> <totalNodes value="4" /> <modifiers> <failBack value="false" /> <autoRepair value="true" /> <restartsBeforeFailure value='0' /> <activeStandbyRatio value='50' /> </modifiers> <messages> <newDeployment>Virtual IP application deployed. Please edit the work assignment (SAF SI) to customize your virtual IP address and interface before starting it.</newDeployment> </messages> <work> <firstIp VirtualIpAddress="192.168.1.250" VirtualNetMask="255.255.255.0" VirtualDevice="eth0:10" /> </work> </virtualIp>
The tags are described as follows:
Contents |
Root Tag
The root tag (in this case "virtualIp") is the name of the application (SAF Service Group).
Attribute: ver
It has a single attribute "ver" that specifies the version of the software in a 4 dotted digit format.
ProgramNames
ProgramNames specifies the names of every SAF component to be run in the application (SAF Service Group). A single SAF Service Unit will be created on each node that this Service Group is deployed onto, and this SU will contain 1 component for every specified attribute to this tag.
Attribute: progN
This tag takes any number of attributes, labelled prog0...progN. Each attribute specifies the name of a Component to be created, and also the name of a binary located in "deploy/bin" that the component will run.
Example:
<programNames prog0="vip" prog1='myProg' />
RedundancyModel
Specify what type of redundancy this Service Group requires
Attribute: value
This specifies the redundancy model. Possible values are:
- "2N": 1 Active/1 standby redundancy
- "N+M": N Active/N standby redundancy
- "custom": The application will explicitly assign redundancy
Example: <redundancyModel value="3+1" />