Harvard Law School brought in Bitlancer to help upgrade Puppet and refactor existing Puppet code to conform to best practices.

Initial situation:

  • Harvard Law School was running a 3.x release of Puppet Enterprise that was close to end-of-life.
  • Nodes were classified individually, making it difficult to ensure configurations were deployed consistently among common nodes.
  • Most Puppet modules deployed non-templatized configuration files that were node or environment specific rather then using templatized configurations that could be driven by Hiera.

How Bitlancer addressed the problems:

  • Upgraded to the 2016.x (Puppet 4) release of Puppet Enterprise and refactored modules to make them Puppet 4 compatible.
  • Rewrote or replaced inflexible modules with publicly available community modules.
  • Transitioned to the popular and standard roles/profiles pattern for classification.


  • Harvard Law School now operates on Puppet 4, and can utilize all the benefits that come with the upgrade.
  • Puppet code is now standardized on best practices:
    • Improved classification that ensures common nodes receive consistent configurations.
    • Support for layering and composing functionality through the use of profiles.
    • Support for using Hiera to drive environment, role, or node specific configurations.
  • Employees are more empowered to make changes themseleves and work together without the need for Bitlancer’s intervention or services.