Add a new client side script, osconfig, that can update an MFS or a
frisbee-loaded slice based on a tarball downloaded from boss. For now, the tarball is dynamically created by boss based on params sent to the osconfig_dump.php script; it is populated with files and a MANIFEST based on the files and constraints in the osconfig_* tables, which are pretty self-explanatory. Transport is not secure, nor intended to be -- nodes on the control net or widearea nodes auth'd with a privkey can grab stuff destined to them based on their IP addr. For the MFS case, the tarball is unpacked and the MANIFEST entries are executed/copied/extracted, and (nearly all of) the client side is re-run. For the slicefix case, we just execute/copy/extract the MANIFEST entries in the mounted slice... there are some useful env vars set for scripts to use. If this mechanism ever becomes generally useful, or we're pushing big update tarballs, we'll have to add a caching mechanism (doh). Right now, it's just for dongle-booted nodes or widearea nodes on which we cannot update the physical boot media without much pain; as well as for making major whacks to frisbee-loaded slices, which we need for the widearea case. Also, call this from rc.cdboot (to update a "read-only" (real media is mounted ro, but other parts of the fs are rw via unionfs or mfs) MFS), and from slicefix. NOTE: the client side osconfig script does not get installed from the makefile; this is intentional. This script should not be placed in our local tftp'd MFSes, at least until there's some need for it!
Showing with 964 additions and 0 deletions