When you want to develop a new Puppet module, it’s best to work outside of your production environment. You could use Puppet’s built-in environments feature to slice up your site, but there are a handful of caveats and it’s not always the most convenient. Enter Puppet Sandbox…
Puppet Sandbox is a multi-VM Vagrant-based Puppet development environment that can be used for creating and testing new modules independent from your production servers. It’s also a great way to get your feet wet if you’re new to the whole world of Puppet and automated configuration management software. While you could manually configure this type of development environment yourself, Puppet Sandbox makes the whole process trivial, reproducible, and fast!
Ideally, you would first develop your modules using Puppet Sandbox, then move them to a staging environment where they would be applied to a limited number of real hosts, and then finally you would put the modules into production. This type of development cycle will provide confidence that your modules will work as expected, when you need them to.
Here’s a short screencast to give you an overview of how the project works:
Puppet Sandbox is open source, and available on GitHub: https://github.com/elasticdog/puppet-sandbox