jenkins
Version information
Start using this module
Add this module to your Puppetfile:
mod 'rtyler-jenkins', '1.0.1'
Learn more about managing modules with a PuppetfileDocumentation
puppet-jenkins
This is intended to be a re-usable Puppet module that you can include in your own tree.
Using puppet-jenkins
Getting Started
puppet module install rtyler/jenkins
node 'hostname.example.com' {
include jenkins
}
Then the service should be running at http://hostname.example.com:8080/.
Installing Jenkins plugins
The Jenkins puppet module defines the jenkins::plugin
resource which
will download and install the plugin "by
hand"
The names of the plugins can be found on the update site
Latest
By default, the resource will install the latest plugin, i.e.:
jenkins::plugin {
"git" : ;
}
If you specify version => 'latest'
in current releases of the module, the
plugin will be downloaded and installed with every run of Puppet. This is a
known issue and will be addressed in future releases. For now it is recommended
that you pin plugin versions when using the jenkins::plugin
type.
By version
If you need to peg a specific version, simply specify that as a string, i.e.:
jenkins::plugin {
"git" :
version => "1.1.11";
}
Plugin dependencies
Dependencies are not automatically installed. You need to manually determine the plugin dependencies and include those as well. The Jenkins wiki is a good place to do this. For example: The Git plugin page is at https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin.
Slaves
You can automatically add slaves to jenkins, and have them auto register themselves. Most options are actually optional, as nodes will autodiscover the master, and connect.
Full documention for the slave code is in jenkins::slave.
It requires the swarm plugin on the master & the class jenkins::slave on the slaves, as below:
node /jenkins-slave.*/ {
class { 'jenkins::slave':
masterurl => 'http://jenkins-master1.domain.com:8080',
ui_user => 'adminuser',
ui_pass => 'adminpass',
}
}
node /jenkins-master.*/ {
include jenkins
include jenkins::master
}
Dependencies
The dependencies for this module currently are:
- stdlib module
- apt module (for Debian/Ubuntu users)
- java module
- zypprepo (for Suse users)
Depending on Jenkins
If you have any resource in Puppet that depends on Jenkins being present, add
the following require
statement:
exec {
"some-exec" :
require => Class["jenkins::package"],
# ... etc
}
Advanced features
- Plugin Hash - jenkins::plugins
- Config Hash - jennkins::config
- Configure Firewall - jenkins (init.pp)
- Outbound Jenkins Proxy Config - jenkins (init.pp)
Using from Github / source
With librarian
If you use librarian-puppet, add
the following to your Puppetfile
:
mod "rtyler/jenkins"
With the "puppet module" tool
This module is compatible with the puppet module tool. Appropriately this module has been released to the Puppet Forge, allowing you to easily install the released version of the module
To quickly try this module with the puppet module tool:
% sudo puppet module install rtyler/jenkins
% sudo puppet apply -v -e 'include jenkins'
info: Loading facts in facter_dot_d
info: Loading facts in facter_dot_d
info: Applying configuration version '1323459431'
notice: /Stage[main]/Jenkins::Repo::El/Yumrepo[jenkins]/descr: descr changed '' to 'Jenkins'
notice: /Stage[main]/Jenkins::Repo::El/Yumrepo[jenkins]/baseurl: baseurl changed '' to 'http://pkg.jenkins-ci.org/redhat/'
notice: /Stage[main]/Jenkins::Repo::El/Yumrepo[jenkins]/gpgcheck: gpgcheck changed '' to '1'
notice: /Stage[main]/Jenkins::Repo::El/File[/etc/yum/jenkins-ci.org.key]/ensure: defined content as '{md5}9fa06089848262c5a6383ec27fdd2575'
notice: /Stage[main]/Jenkins::Repo::El/Exec[rpm --import /etc/yum/jenkins-ci.org.key]/returns: executed successfully
notice: /Stage[main]/Jenkins::Package/Package[jenkins]/ensure: created
notice: /Stage[main]/Jenkins::Service/Service[jenkins]/ensure: ensure changed 'stopped' to 'running'
notice: Finished catalog run in 27.46 seconds
Dependencies
- puppetlabs/stdlib (>= 2.0.0)
- puppetlabs/apt (>= 0.0.3)
- puppetlabs/java (>= 1.0.1)
- darin/zypprepo (>= 1.0.1)
Copyright (C) 2014 R. Tyler Croy <tyler@monkeypox.org> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.