Page tree
Skip to end of metadata
Go to start of metadata

The node payload system provides the nodes with control software to run on them. It does this by serving a dynamically constructed tarball (a payload) to each node. That tarball consists of:

  • Payload items provided by Flexiant; and
  • (Optionally) payload items provided by the Licensee

Each payload item can either be

  • .deb file, being a debian archive which is installed automatically by the node using dpkg; or
  • .sh file, being a script which is run automatically by the node

The scripts are run in runparts order (i.e. alphabetically) with the parameter start on installation and stop on termination (e.g. on a subsequent upgrade).

The payload scripts are loaded from a base payload directory, and the hypervisor subdirectory. The base payload directory is the first of this directories that exist:

  1. /etc/extility/nodeconfig/payload-IPADDRESS
  2. /etc/extility/nodeconfig/payload-MACADDRESS
  3. /etc/extility/nodeconfig/payload-CONFIGGROUP
  4. /etc/extility/nodeconfig/payload

Thus, if the MAC address is aa:bb:cc:dd:ee:ff, the IP address is 10.157.128.10, and the node is in config group 3, then the following directories will be tried in order: 

Letters in MAC addresses must be in lower case.

  1. /etc/extility/nodeconfig/payload-10.157.128.10
  2. /etc/extility/nodeconfig/payload-aa:bb:cc:dd:ee:ff
  3. /etc/extility/nodeconfig/payload-3
  4. /etc/extility/payload

The hypervisor subdirectory is the name of the hypervisor in capital letters, e.g. KVM, XEN4, VMWARE, HYPERV, or PCS. In the case of a router node, the hypervisor name is 'ROUTER'. 

Thus, if the MAC address is aa:bb:cc:dd:ee:ff, the IP address is 10.157.128.10, and the node is in config group 3 and runs KVM then the following directories will be tried in order:

  1. If /etc/extility/nodeconfig/payload-10.157.128.10 exists then
    1. Send files from /etc/extility/nodeconfig/payload-10.157.128.10-KVM
    2. Send files from /etc/extility/nodeconfig/payload-10.157.128.10 unless already sent
    3. Stop searching
  2. else if /etc/extility/nodeconfig/payload-aa:bb:cc:dd:ee:ff exists then
    1. Send files from /etc/extility/nodeconfig/payload-aa:bb:cc:dd:ee:ff-KVM
    2. Send files from /etc/extility/nodeconfig/payload-aa:bb:cc:dd:ee:ff unless already sent
    3. Stop searching
  3. else if /etc/extility/nodeconfig/payload-3 exists then
    1. Send files from /etc/extility/nodeconfig/payload-3-KVM
    2. Send files from /etc/extility/nodeconfig/payload-3 unless already sent
    3. Stop searching
  4. else if /etc/extility/payload exists then
    1. Send files from /etc/extility/payload-KVM
    2. Sebd files from /etc/extility/payload unless already sent
    3. Stop searching

If a specific directory is found, then the system will not look in the default hypervisor directory, even if there is no hypervisor directory within the specific directory. For instance, taking the above example, if the system finds the directory /etc/extility/nodeconfig/payload-10.157.128.10 in the above example, it will not look for /etc/extility/payload-KVM even if /etc/extility/nodeconfig/payload-10.157.128.10-KVM does not exist.

All '.deb' and '.sh' files from both directories will be included, save that if the same file is in both directories, the one from the first directory will take precedence and the one from the second will not be included.

A typical use of the payload system would be to put a custom monitoring agent on each node. This is simply a case of copying the relevant debian package into /etc/extility/nodeconfig/payload.

  • No labels