diskimage-builder/elements/hwdiscovery
Chris Jones 8d1ce9c0c3 Build ramdisks in an image chroot.
Ramdisks are now built inside a chroot which is built by the normal
image build process. Doing so improves our independence of the
precise state of the build host.

This fixes bug 1194055.

Change-Id: Ibc254fbb9e7b404b5f38c1b35bcde8a4136e8e28
2013-07-12 11:09:35 +01:00
..
binary-deps.d Build ramdisks in an image chroot. 2013-07-12 11:09:35 +01:00
init.d Build ramdisks in an image chroot. 2013-07-12 11:09:35 +01:00
install.d Create install-packages as a binary. 2013-01-31 00:08:58 +01:00
README.md Further fleshing out of hwdiscovery element 2012-12-06 21:55:30 +00:00

A ramdisk to report the hardware of a machine to an inventory service.

This will collect up some basic information about the hardware it boots on:

  • CPU cores
  • RAM
  • Disk
  • NIC mac address

This information will then be collated into a JSON document, base64 encoded and passed, via HTTP POST, to a URL that you must specify on the kernel commandline, thus:

HW_DISCOVERY_URL=http://1.2.3.4:56/hw_script.asp

This is currently fairly fragile as there can be a huge variability in the number of disks/NICs in servers and how they are configured.

If other elements wish to inject data into the hardware discovery data, they can - they should be specified before hwdiscovery to the image building script, and they should contain something like this in their init fragment:

_vendor_hwdiscovery_data="$_vendor_hwdiscovery_data "some vendor key" : "some data you care about", "some other vendor key" : "some other data you care about","

Note that you are essentially feeding JSON into the main hwdiscovery JSON.

This will allow any number of vendor specific hwdiscovery elements to chain together their JSON fragments and maintain consistency.