wiki:Software/eAM/aInventory/InventoryGathering

Inventory Gathering

Inventory Attribute Structure

Our layout will try to capture the relationship between nodes (which for our current purposes means motherboards) and devices (any network/communication device). The relationship hierarchy looks like this:

TESTBED -
         |
         -> Node -
            -INV_... -- Inventory Attributes (e.g. motherboard serial number, disk size, cpu type,...)
            -INF_... -- Infrastructure Attributes  (Control IP, Control interface,...)
            -CM_...  -- CM attributes (e.g. CM IP, CM Version, ...)
                 |
                 -> Device
                    -name = FQDNofNode_dev_unique#
                    -INV_if_name= "name the os thinks this device is. (e.g. eth0)"
                    -INV_dev_id = "xxxx:xxxx" where the x's are hex numbers that represent the device identifiers. 

To reflect these relationships we're going to establish a few naming conventions. These will be enumerated in the following table

Hardware resource type name attributes (all prefixed with INV_)
Mother board Node FQDNofNode disk, memory, mother board serial number, disk serial number,cpu type, checkin date, cpu tag
Wired ethernet card Device FQDNofNode_DEV_unique# mac, device id, device string, bus type, device tag
Wireless ethernet card Device FQDNofNode_DEV_unique# mac, device id, device string, bus type, device tag
USB connected device Device FQDNofNode_DEV_unique# mac (if it exists), device id, device string, bus type, device tag

Inventory Gathering

Inventory collection is now done via a diskless netboot. The PXE links are set for the whole domain and a script that works with CMC service to boot the nodes (usually in multiple waves); the netboot image automatically starts the gathering procedure. The two scripts,gatherer.rb and inventory.sh are the core of the process and stored in the /root directory of the image. Inventory.sh is merely a launchers that specifies where to redirect logs, and where the lspci/lsusb binaries are (set via flags when invoking gatherer.rb). Inventory.sh is added to the node startup routine at priority s99. When the node boots it should immediately begin the inventory process.

Last modified 23 months ago Last modified on 01/24/16 18:58:58