Skip to content
Commits on Jul 17, 2012
  1. Merge pull request #2 from tjmcs/tb/remove_lynxbat_links

    tjmcs committed
    Changed source for the 'mk-open-vm-tools.tar.gz' used by the script
Commits on Jul 5, 2012
  1. changed source for the 'mk-open-vm-tools.tar.gz' downloaded by the 'b…

    Tom McSweeney committed
    …' script from the Downloads area of the Razor project to the Downloads area of the Razor-Microkernel project (on the PuppetLabs GitHub). This change will only work once the Razor-Microkernel project becomes a public project. Until then, the Razor project is the only public project that we can use for this download (so the mk-open-vm-tools.tar.gz file will remain in both places until then).
Commits on Jul 3, 2012
  1. Merge pull request #1 from nanliu/tb/license

    tjmcs committed
    Update license to Puppet Labs GPLv2.
  2. @nanliu

    Update license to Puppet Labs GPLv2.

    nanliu committed
    Transfer and update copyright to GPLv2.
  3. Fix for Issue #115 (in the Razor project's Issue list). Without the c…

    Tom McSweeney committed
    …hanges in this patch the RzMkHardwareFacter class is confused by the presence of 'nil' elements in the hash_array value that is passed to it's add_flattened_array_to_facts! method (they are counted in the associated "count" field but no associated values are added to the facts_map, so the count field ends up being off by the number of nil elements included in this hash_array input argument). While this issue was being fixed, also patched up an issue with the way that the indentation level was detected by the lshw_output_to_hash method in this same class (the previous method implementation could become confused by the output seen on some platforms, where included arrays are less indented than included values on a given level of the array).
  4. Added code to fix an error that occurred in the …

    Tom McSweeney committed
    …script when the build-files subdirectory didn't exist yet in the project. Also added a bit of code to the script to get the kernel version number from the output of a 'ls ${DIR_NAME}/extract/lib/modules' command (instead of using a fixed version number).
Commits on Jun 22, 2012
  1. Cleaned up usage to ensure it would work with a standard (80-column w…

    Tom McSweeney committed
    …ide) terminal window
  2. Changed initial comments for this script to describe what it does in …

    Tom McSweeney committed
    …the current implementation (not what it used to do previously).
  3. renamed this script to more closely resemble the terminology being us…

    Tom McSweeney committed
    …ed in the Razor Microkernel documentation (it builds the "bundle file" containing all of the scripts and files needed to build a new version of the Razor Microkernel ISO).
Commits on Jun 21, 2012
  1. Added code to the script to support two new…

    Tom McSweeney committed
    … pairs of command line flags: '-t' or '--tc-passwd' (which can be used to change the 'tc' user password for non-production images) and
    '-d' or '--build-debug-image' (which can be used to build a "Debug ISO").  Note that previously we just supported building of development or production ISOs, this commit adds the concept of a "debug" ISO to that list (which is an ISO for which autologin of the tc user is enabled for the console).  Obviously, this sort of ISO should not be used in production, but it is useful for debugging Razor connectivity issues.
Commits on Jun 12, 2012
  1. Changing README to a markdown file and changing the contents to refle…

    Tom McSweeney committed
    …ct the recent changes to the project (where the Microkernel ISO is now built automatically).
  2. Changing README to a markdown file and changing the contents to refle…

    Tom McSweeney committed
    …ct the recent changes to the project (where the Microkernel ISO is now built automatically).
Commits on Jun 8, 2012
  1. Removed dependency on external mk-open-vm-tools.tar.gz file (this fil…

    Tom McSweeney committed
    …e is now assumed to be downloaded from a URL, which will be the downloads page of the Razor-Microkernel project when it is made public). Also removed the extra command line flag to build a development image (to avoid conflict if both that argument and the argument to build a production ISO were specified) and reversed the sense of the "BUILD_DEV_FLAG" and the tests that used it (now it's a "BUILD_PROD_FLAG", to the tests had to be reversed...switching 'no' to 'yes' and 'yes' to 'no' in the tests of this flag). Changed the name of the included gzipped tarfile containing our overlay (it now has the word 'overlay' in its name to make it clean what it is) and made a corresponding change to the script. Lastly, added a snippet of code to change the name of the bundle file we are creating to reflect whether it is mean to to build a development or production system (and changed the phrase 'overlay' in its name to 'bundle' so that it is clear what it's not an overlay, it's a bundle containing an overlay)
  2. Extracted the etc/passwd and etc/shadow files from the ssh-setup-file…

    Tom McSweeney committed
    …s.tar.gz gzipped tarfile and added these files to the Razor-Microkernel project instead. Also added a third file (etc/shadow-nologin) to the project. This third file is used for production systems (where we want to disable login by any user, even at the console). Finally, made changes to the script to copy over the appropriate pair of files (etc/passwd and etc/shadow for development systems; etc/passwd and etc/shadow-nologin for production systems) into what will be the /etc/passwd and /etc/shadow files on the ISO we are building.
Commits on Jun 7, 2012
  1. Added an example of the file used to determine which utilities to ext…

    Tom McSweeney committed
    …ract from the util-linux.tcz extension
  2. Removed an external dependency or two (we are now obtaining the 'lscp…

    Tom McSweeney committed
    …u' and 'sfdisk' commands for the ISO directly from a downloaded version of the util-linux.tcz extension, for example, instead of bundling these two executables in a separate gzipped tarfile). Also added a set of flags to the script (using the getopt built-in under BASH) that give the user the ability to point to their own built-list and mirror-list (instead of having these values 'hardwired' into the script). Finally, added a couple of flags that allow the user to specify if they going to be building a production or development ISO. In the case of a production ISO, the name of the file created by the script is changed to include 'prod' instead of 'dev' in its name, the openssh.tcz extension is skipped (along with it's configuration files), and passwd/shadow files are also skipped. These last two changes effectively remove the ability to access the Microkernel, either remotely via SSH or via the console, which is a key feature in a production system.
  3. Changes to make this process completely automatic. No longer need to …

    Tom McSweeney committed
    …build a separate overlay for the extensions that need to be installed at boot, nor is there a separate overlay for the MCollective install. All of the components are now dynamically downloaded by the '' script (unless the user specifies that the previous downloads should be used via the '--reuse-prev-dl' flag). The only remaining dependencies that are not automatically included by this script are the configuration files for the openssh and mcollective installs, the lscpu and sfdisk executables, and the open_vm_tools extension we built for the Microkernel. These dependencies are all pulled into the image from the 'additional-build-files' directory (which is at the top-level of this project).
Commits on Jun 6, 2012
  1. This commit includes the changes necessary to support the build of a …

    Tom McSweeney committed
    …single gzipped tarfile containing almost all of the files needed to build the Microkernel ISO directly from the Razor-Microkernel project directory. The current implementation of this script ( requires that the user also set up a separate subdirectory (additional-build-files) in the Razor-Microkernel project directory that contains three additional files (Core-current.iso, fix-dmidecode-path-for-facter.tar.gz, and mk-open-vm-tools.tar.gz) that are necessary to build the Microkernel ISO (in a future version of this script, we'll try to get around this issue). There is also an assumption that the user will create a orig-fs-snapshot subdirectory (in the directory being used to build the Microkernel ISO, which is assumed to be different from the Razor-Microkernel project directory) that contains the snapshot taken from the filesystem of a running Microkernel instance on which a number of additional extensions have been installed and configured (before running the script from within that directory). Again, we'll try to get around this external dependency in a future release.
Commits on Jun 1, 2012
  1. Refactored Microkernel codebase to support the addition of a new exte…

    Tom McSweeney committed
    …nsion (firmware-bnx2.tcz) and remove the dependency on the bundler gem (we will just install gems directly from here on out).
Commits on May 17, 2012
  1. A new version of the Microkernel (v0.8.8.0) that modifies the behavio…

    Tom McSweeney committed
    …r of the flag added to the checkin requests in the previous release of the Microkernel. This flag is now only included if the node hasn't successfully checked in and registered with the Razor server. Once both of these conditions have been met, the flag will be set to false (and no longer included in the checkin requests) until the node is rebooted. This change will only work properly on reboot once changes have been made to the Razor server to handle this flag properly. Until then, on reboot, the is_first_checkin flag will remain true until Razor asks the node to register again (since we consider a "first checkin" to be the first time that the node successfully checks in and registers with the Razor server after a boot or reboot).
  2. Added a new file to the Microkernel that is used to store whether or …

    Tom McSweeney committed
    …not the Microkernel controller is checking in for the first time. This change makes it possible for the Razor server to determine whether or not it should force a registration on first boot, even if the node has checked in more recently than the "register_timeout" (allowing for the Razor server to pick up configuration changes on the node that may have required a reboot of the node but that didn't take too long, so the time between checkins doesn't exceed that "register_timeout" value).
Commits on May 10, 2012
  1. Swapped initialization over from the /opt/ script to the …

    Tom McSweeney committed
    …/opt/ script (so that the commands run synchronously instead of in the background)
  2. Added a revised inittab file to the ISO build process (is actually co…

    Tom McSweeney committed
    …pied over to /etc/inittab in the resulting ISO) that disables automatic login of the tc user on boot (something we needed to do before release)
Commits on May 9, 2012
  1. Refactored the work from last night around dynamic loading of the TCL…

    Tom McSweeney committed
    … extensions (and the kernel modules they might contain). The TCE Mirror WEBrick instance now returns the lists as arrays instead of hash maps and both the Microkernel Controller and Kernel Module Manager now deal with these as arrays instead of hash maps. Also cleaned up how the Kernel Module Manager dealt with requests to install a module that is already installed (the module is now removed, then reinstalled) and added code to the Kernel Module Manager to simplify how it handles the "module names" that it receives from the TCE Mirror WEBrick instance (it now searches for the modules under the kernel module directory instead of requiring a full relative pathname to the kernel module in the names of the modules returned by that WEBrick instance). Finally, added the files used by the new WEBrick instance to the project (under the 'tmp/tinycorelinux' sub-directory) and moved the mk_conf.yaml file to that new (tmp) subdirectory since that's where the mk_conf.yaml file will actually be placed during the build process.
  2. Refactored the previous version of the Microkernel to add a new WEBri…

    Tom McSweeney committed
    …ck instance that supports local loading of TCL extensions. Also removed the script that was previously used to load the kernel modules that might be contained in these extensions to support the loading of a list of kernel modules from the same WEBrick instance (this functionality is now provided by the RazorMicrokernel::RzMkKernelModuleManager class instead) and added the WEBrick instance itself (via the rz_mk_tce_mirror.rb script).
Commits on May 8, 2012
  1. Added a quick change that restricts the installation of extensions so…

    Tom McSweeney committed
    … that, by default, an extension is only installed if it is not yet installed. This avoids the overhead of re-installing extensions when the Microkernel Controller is restarted (extensions will still be re-installed on reboot, of course). This behavior can be overridden by an additional flag to the load_tcl_extensions method (in the Microkernel Controller), but this flag is not currently being used (it's there for future use if we decide we need it). This change will be made available in v0.8.2.0 of the Microkernel.
  2. Last round of changes for initial release of the Microkernel that wil…

    Tom McSweeney committed
    …l dynamically load extensions (and the kernel modules they contain, at least for the open_vm_tools extension) from a (Razor) server. Have tested this with an Apache server, now just need to finish the Razor server-side code to support this implementation.
Commits on May 5, 2012
  1. First round of changes to make the Microkernel pull the kernel module…

    Tom McSweeney committed
    …s dynamically from the Razor server (rather than loading modules from the set of kernel modules burned into the ISO). While we're changing to a new ISO, took the time to update the Facter gem that is loaded dynamically on boot to the latest stable version (v1.6.8)
Commits on May 3, 2012
  1. Changes to add the display of the Microkernel version as part of the …

    Tom McSweeney committed
    …boot process
Commits on May 2, 2012
  1. Added code to the RazorMkHardwareFacter class to remove any "offendin…

    Tom McSweeney committed
    …g keys" from the key-value pairs that are passed back to Razor. We use the phrase "offending keys" here to refer to any keys that include characters from the following character set: [!@#\$%\^&*()=+\[\]\{\}]
    Any "offending key" will be replace by a "cleansed key" (one with the offending characters removed) before the facts_map is passed back to the caller of the "RazorMicrokernel::RzMkHardwareFacter::add_facts_to_map!()" method, and the value that was stored under the old (offending) key will be stored under a new (cleansed) key instead (the old key-value pair will be removed as part of this operation).  With this change in place, we shouldn't have to worry about passing a facts_map with any offending keys to the Razor server (since none of the facts we gather using Facter have "offending keys", just those we've added using this RzMkHardwareFacter class).
Commits on Apr 30, 2012
  1. Removed the "bluepill" bundle from the Razor-Microkernel project (we …

    Tom McSweeney committed
    …no longer feel we'll need this functionality, and the bundle/gem itself wasn't very well implemented and doesn't seem to be well supported anymore either)
  2. Changed the RzMkControlServer and RzMkRegistrationManager so that the…

    Tom McSweeney committed
    …y report a "hw_id" value (constructed using a new "get_hw_id_array" method that was added to the RzMkFactManager class) rather than a "uuid" value to Razor as part of the checkin and registration requests. With this set of changes, responsibility for construction of UUID values (and visibility into those values) is officially moved over to the Razor server and away from the Microkernel.
Commits on Apr 21, 2012
  1. Fixed permissions in this file. Now the permissions for this file cor…

    Tom McSweeney committed
    …respond to the permissions set for the others that will be installed in the /usr/local/lib/ruby/1.8/razor_microkernel directory (within the Microkernel ISO)
Something went wrong with that request. Please try again.