3.8 KiB
Jenkins
This Vagrant project will provision a VirtualBox machine with Jenkins. The intended use cases are
- development on the
ebrc_jenkins
Puppet module - a playground for Jenkins job configuration before unleashing to production
- including pre-flighting Jenkins upgrades
- a sandbox for Jenkins plugin development
Only the master Jenkins server is provisioned at this time. Provisioning a separate worker node has not been implemented. Of course the master server can also serve as a worker so this single node will be sufficient for most use cases.
Prerequisites
The host computer needs the following.
Vagrant
Vagrant manages the lifecycle of the virtual machine, following by the instructions in the Vagrantfile
that is included with this project.
https://www.vagrantup.com/downloads.html
You should refer to Vagrant documentation and related online forums for information not covered in this document.
VirtualBox
Vagrant needs VirtualBox to host the virtual machine defined in this project's Vagrantfile
. Other virtualization software (e.g. VMWare) are not compatible with this Vagrant project as it is currently configured.
https://www.virtualbox.org/wiki/Downloads
You should refer to VirtualBox documentation and related online forums for information not covered in this document.
Vagrant Librarian Puppet Plugin
This plugin downloads the Puppet module dependencies. Install the plugin with the command
vagrant plugin install vagrant-librarian-puppet
Vagrant Landrush Plugin (Optional)
The Landrush plugin for Vagrant
provides a local DNS where guest hostnames are registered. This permits,
for example, the rs1
guest to contact the iCAT enabled server by its
ies.vm
hostname - a requirement for iRODS installation and function.
This plugin is not strictly required but it makes life easier than
editing /etc/hosts
files. This plugin has maximum benefit for OS X
hosts, some benefit for Linux hosts and no benefit for Windows. Windows
hosts will need to edit the hosts
file.
EBRC uses a custom fork of Landrush. In an OS X terminal, run the following.
git clone https://github.com/mheiges/landrush.git
cd landrush
rake build
vagrant plugin install pkg/landrush-0.18.0.gem
If you have trouble getting the host to resolve guest hostnames through landrush try clearing the host DNS cache by running
sudo killall -HUP mDNSResponder
.
You should refer to Landrush and Vagrant documentation and related online forums for information not covered in this document.
Usage
git clone git@github.com:EuPathDB/vagrant-jenkins.git
cd vagrant-jenkins
vagrant up
The default Jenkins website will be available at
http://ci.jenkins.vm:9191/
Setup and Configuration
For most use cases no configuration is needed.
Jenkins is provisioned using Puppet using adjustable parameters defined
in the Hiera file puppet/environments/production/hieradata/common.xml
The configuration changes you may be interested in include the Jenkins
version and network ports that the server listens on. These are defined
in the ebrc_jenkins::instances
Hiera hash.
The most important Puppet module in play here is ebrc_jenkins
so see
that module's documentation at
https://github.com/EuPathDB/puppet-ebrc_jenkins for details.
Manual Puppet Run
When doing ebrc_jenkins
Puppet module development you can trigger a
run of the puppet agent with vagrant provision
on the Vagrant host or
by running the puppet agent on the guest.
sudo /opt/puppetlabs/bin/puppet apply --environment=production /etc/puppetlabs/code/environments/production/manifests/site.pp