Puppet Module Reference
OIT maintains a rigorous change management process
and tests to assure that core Puppet profiles and roles interoperate correctly.
The intention is to continuously provide a set of building blocks that campus can use to provide solid services using best practices.
The ncsu:: Module
All of the centrally supported Puppet code lives in this
“Supported” means that if you encounter a bug or have a problem implementing a class in the
ncsu:: name-space on a supported operating system you can get assistance using the LINUX workgroup in ServiceNow.
We intend this class to be reliable and trustworthy for all who use it.
This module lives on github.ncsu.edu
It is subject to a
change management schedule
to ensure that it is properly tested, and that the
production branch is functional
for everyone on campus. Anyone can fork this module to meet specialized needs,
but you are responsible to support any forks/branches you create.
To simplify the management of large number of hosts, you classify hosts into “roles.” A Role can describe a single system, for example, “Library Master Database Server” or many systems, for example “ECE Graduate Student Loaner Chromebooks.” Both Roles and Profiles are implemented as Puppet Classes, and are stored in git repos.
Supported roles are all named as
ncsu::role::rolename where rolename is the name of the role. You assign a role to a host, hostgroup, or organiztion in the Foreman.
A role will call any number of profiles to configure the machine to meet the role requirements.
The pci:: Module
Systems constrained by the PCI-DSS have specific Puppet modules to support PCI-DSS.
Whenever possible, we code the
ncsu:: modules to the strongest possible security standards, so they
can be used in any regulartory environment. Some things like, authentication do need to be seperate for
About this documentation
This documentation was automatically generated from the Puppet Source code using
puppet strings Alas! The current version of puppet strings does not support omitting things as
@api private so we’ve only run it for direct descentands of
profile:: There may be classes, functions, or types that are not documented here as a result. When in doubt, refer to the source files on github.ncsu.edu
In a similar vein, the current version of puppet strings does not support so-called Puppet “type aliases” so the very important custom types we use under types/ are not documented here. Whenever you see a parameter of type ncsu::something-something, you’ll find it’s definition in github under types/Edit me