Fun With Raw Constructors


Raw Constructors allow you to compose Puppet resources using Hiera data.

There's nothing spectacular about this -- many administrators use this simple technique. It relies on the builtin Puppet function create_resources. If you haven't looked the documentation for create_resources, it's a quick read and it will allow you to better understand how Raw Constructors work.

It also helps to have a good understanding of the various Puppet Types available and how they operate.

There aren't Raw Constructors for every Puppet type, just enough to cover the basics. Still, they're fairly convenient and allow you to add resources to the Puppet catalog without resorting to creating extra manifests.


The Basics

Creating Users

Creating Mobileconfigs


This module was designed as part of the Managed Mac project at Simon Fraser University.

Released under the Apache License.


  • OS X 10.9 or greater
  • Puppet 3.x
  • puppetlabs-stdlib module
  • CFPropertyList gem
  • sqlite3 gem

Bug Reports

Please file bug reports using the Github Issue Tracker


The authors would like to thank the following folks for their invaluable contributions:

  • Gary Larizza
  • Christian Kruse
  • The generous operators and regulars on #puppet-dev
  • SFU ITS Mac Dev Team
    • Geoff Brown
    • Jeff Bryer
    • Grant Dimock
    • Brian Langdeau
    • James Peltier
    • Riley Shott
    • Brian Warsing