Puppet environment and module deployment
r10k provides a general purpose toolset for deploying Puppet environments and modules. It implements the Puppetfile format and provides a native implementation of Puppet dynamic environments.
r10k supports the following Ruby versions:
- 1.8.7 (POSIX minimum version)
- 1.9.3 (Windows minimum version)
- 2.0.0
- 2.1.0
r10k requires additional components, depending on how you plan on managing environments and modules.
- Installing modules from the Puppet Forge requires Puppet 3.0.0+ or later. Puppet 2.7 may work, but is generally not recommended as Puppet 2.7 is EOL.
- Git is required for creating environments and modules from Git
- SVN is required for creating environments and modules from SVN
For general use, you should install r10k from Ruby gems:
gem install r10k
r10k help
Puppet Enterprise bundles a copy of Ruby, so if you do not want to use the system version of Ruby with r10k, you need to use the bundled PE gem command for installation:
/opt/puppet/bin/gem install r10k
r10k help
If you have more specific needs or plan on modifying r10k you can run it out of a git repository using Bundler for dependencies:
git clone git://github.com/adrienthebo/r10k
cd r10k
bundle install
bundle exec r10k help
r10k has two primary roles: installing Puppet modules using a standalone Puppetfile, and managing Git and SVN based dynamic environments. For more information see the topic specific documentation:
- Puppetfile documentation: doc/puppetfile.mkd
- Environment deployment documentation: doc/dynamic-environments.mkd
- IRC: r10k has a dedicated channel,
#r10k
, on Freenode where r10k questions can be directed. Questions about r10k can frequently be asked in#puppet
as well. - Mailing lists: puppet-users
- Q&A: Puppet Ask
The original impetus for r10k is explained at http://somethingsinistral.net/blog/rethinking-puppet-deployment/
Please see the CHANGELOG for a listing of the (very awesome) contributors.