Over a million developers have joined DZone.
Platinum Partner

Pulling Jenkins' strings with Puppet

· DevOps Zone

The DevOps Zone is brought to you in partnership with New Relic. Improving the performance of your app is easy with New Relic's SaaS-based monitoring.

A couple months ago I created this puppet-jenkins module while experimenting with using Puppet to script or otherwise control more and more of my daily sysadmin-life.

This post was originally authored by R. Tyler Croy

After a weekend of hacking I figured I was mostly finished, that was until Puppet Labs engineer Jeff McCune picked up the module and added a number of rspec tests, CentOS/RHEL support and generally tidied up the place. Pretty neat I thought!

Once again through the power of GitHub a weekend project has taken a life of its own now that multiple people are interested in the concept and have forked the repo accordingly.

With the encouragement of a number of people, I've also published the module to Puppet Forge which allows for easy integration with thousands of Puppet installations.

If you'd like to use the Jenkins puppet module from Puppet Forge, you can use:

% -> puppet-module install rtyler-jenkins

Once the module is included you can slurp in the Jenkins module with this in your manifests:

class { 'jenkins': ; }  # logically equivalent to "include jenkins"

You can also use the module to handle plugin installation for you with the install-jenkins-plugin type:

install-jenkins-plugin {
    "git-plugin" :
        name    => "git,
        version => "1.1.11";

(Omit the "version" if you just want to pull the latest)

If you're interested in contributing, the GitHub project is here.

Add this to the ever increasing list of projects that were planted on GitHub and flourished afterward.

Source:  http://unethicalblogger.com/2011/12/28/jenkins-with-puppet.html

The DevOps Zone is brought to you in partnership with New Relic. Know exactly where and when bottlenecks are occurring within your application frameworks with New Relic APM.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}