It may be desirable to automate and manage your Jenkins instance with Puppet.
Ubuntu + Jenkins repository
This class depends on the 'apt' Puppet module at https://github.com/camptocamp/puppet-apt.
class jenkins { include apt apt::key { 'D50582E6': source => 'http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key', } apt::sources_list { 'jenkins': ensure => present, content => 'deb http://pkg.jenkins-ci.org/debian-stable binary/', # The above gives you the LTS release. Use the below repo to get the very latest # content => 'deb http://pkg.jenkins-ci.org/debian binary/', require => Apt::Key['D50582E6'], } package { 'jenkins': ensure => installed, require => Apt::Sources_list['jenkins'], } service { 'jenkins': ensure => running, enable => true, require => Package['jenkins'], } }
RPM/DEB/etc over HTTPÂ
An even simpler solution is to simply install a specific version via rpm/deb over http:
class jenkins { package {"jenkins": ensure => "installed", provider => "rpm", source => "http://pkg.jenkins-ci.org/redhat/jenkins-1.460-1.1.noarch.rpm", } service {"jenkins": enable => true, ensure => "running", hasrestart=> true, require => Package["jenkins"], } }
This solution provides more consistent puppet runs as the Jenkins version won't change over time. Note that this solution depends on pkg.jenkins-ci.org being up during the puppet run, so it would be recommended to host the package on your own server or an S3 bucket if that is a concern for you.