The Puppet Forge: Modules From Design to Deployment at PuppetConf

The community around the Puppet Forge is booming right now. In the past six months, we've added more than 700 user accounts and 400 modules. The value for users is obvious: Even if a Puppet Forge module doesn't do exactly what you need, it will get you close. Even the modules that don't address any specific requirement you might have offer insight into how to write Puppet code.

The PuppetConf Puppet Forge and modules track offered a wealth of information about how to use and develop modules, including guidance from Puppet Forge product owner Ryan Coleman on how to design, write and test modules, and then publish them for everyone to share.

Ryan Coleman: Forging Great Modules: Standards, Tools and Patterns

Puppet Forge product owner Ryan Coleman presented a wide-ranging introduction to the Puppet Forge:

  • What the Puppet Forge is and what you'll find there
  • Module Design Patterns (e.g., parameter naming & puppet-lint)
  • Module Testing Frameworks and Practical Examples (e.g., rspec-puppet)
  • Iterative Development Tools and Practices
  • Forge Publishing Workflows (e.g., versioning & github)

Chad Metcalf : Growing Pains: Avoiding Module Hell

Chad Metcalf , an infrastructure engineer at WibiData, presented about the challenges posed by the rapidly growing Puppet community. Puppet DSL developers aren't alone in experiencing growth problems, either. "Whether it's libraries in C, JARs in Java, or gems in Ruby," he said, "the basic unit of software can be a huge source of problems."

"How many times have you gone to pull in a module only to find it requires a conflicting sudo module? How many Apache modules are there and why are they all different? Where did that class go when the version only changed by 0.0.1? As a community we should address these challenges early or face our own module hell," he argued.

Alessandro Franceschi : Anatomy of a Reuseable Module

Alessandro Franceschi, a freelance consultant with Lab42, discussed reusable Puppet code. What is a reusable Puppet module? What are its requirements? Why does it matter and why it's not always the best choice? And, most of all, how do you make reusable modules? His session focused on how to make modules written in a way that allows them to be used in many different environments (and with different operating systems) without modifying them.

Derek Higgins : Making a Robust Installer for Linux Server Applications with Puppet Modules

Derek Higgins of Red Hat presented a session about how Puppet technologies are used in Packstack, where they're part of a run-once installer that deploys OpenStack in a distributed environment. He discussed the benefits and pitfalls of applying Puppet manifests to deploy OpenStack.

Greg Swift :Replacing Simple Puppet Modules with Providers

Greg Swift, a Linux engineer at Rackspace, said "we've probably all gone looking for the resolv.conf module, or managed a template just so we could disable PermitRootLogin, or grumbled a little at how the host provider works. What if rather than managing modules for these things, there was an idempotent type available? That is the goal of augeasproviders by the Hercules Team. By writing custom types and providers using augeas you can go back to defining your environment with a DSL, rather than managing templates and additional modules."

Carlos Sanchez: How to Develop Puppet Modules: From Source to the Forge With Zero Clicks

In his presentation, Carlos Sanchez of MaestroDev said Puppet Modules are a great way to reuse, share or get new code, but that it's time to bring best practices learned from developers to build, test, deploy and use those modules. His talk lined out three steps for a fully automated process:

  • Continuous integration of Puppet modules
  • Automatic release and upload to the Puppet Forge
  • Deployment to a puppet master

Rob Reynolds: Puppet on Windows: Now You're Getting Chocolatey!

Puppet Labs' own Rob Reynolds said doing package management on Windows can be easy when you add a little chocolatey to the mix. Chocolatey is quickly becoming the de facto standard for dealing with packages and dependencies on Windows. His session focused on Puppet, Windows, Chocolatey and where all of this is going in the coming months.

Learn More

Leave a comment