This article will describe how to create a masterless Puppet workflow with Capistrano. A MP workflow uses Puppet, but without a Puppet Master server – hence masterless. The benefit of this workflow is a reduction in the amount of required services needed to run a Puppet environment: the Puppet Master, PuppetDB, and certificate management.
- Capistrano Installation and Configuration
- Capistrano Modules
Capistrano Installation and Configuration
The first step is to install and configure Capistrano. The documentation found on Capistrano's homepage is excellent.
I have written a series of "modules" for Capistrano that can be found here. "Modules" is quoted because there is no official pluggable set of libraries for Capistrano called modules. These are just tasks and libraries that I've tried to make easily distributable.
The README files found in each of the modules should be clear enough for you to successfully install, configure, and use each module. However, if something is not clear, please let me know.
The first module required is the utils module. This module contains some helper functions for rendering templates and uploading files.
The next module to configure is the hiera module.
By the time you have finished configuring this module, you should have a set of servers listed in a stage's data source file similar to this example.
The final module to configure is the puppet module. The README file for this module has a specific section for a masterless Puppet workflow. Again, if the documentation is not clear, please let me know.
This article covered the different components required for using a masterless Puppet workflow with Capistrano. You should now be able to easily use Puppet to configure remote servers without the need of a Puppet Master.