Jenkins in the Fedora infrastructure

Pierre-Yves Chibon pingou at pingoured.fr
Fri Oct 5 17:00:47 UTC 2012


Hi,

This week Seth, Toshio and I have been thinking about and playing with
Jenkins.

The current jenkins we used is administrted by Luke at:
http://jenkins.turbogears.org/
and runs on hardware which is not within the Fedora infrastructure.
This machine is:
  Processor: Dual Xeon @ 2.50GHz (on a dual quad-core Xen dom0)
  Memory: 1G allocated; 12G on dom0
  OS: Red Hat Enterprise Linux Server 5.8
  Python: python-2.4, 2.5, 2.6 and 2.7

This week had two co-occurring events:
- fedora-review did not build on this instance of jenkins due to missing
dependencies on the system
- Toshio started to port Kitchen to python3 and had no place to run his
unit-tests in an automated way.

So we thought about using our new cloud system for setting up jenkins
build nodes.

We now have two build nodes within our cloud, one running Fedora 17 and
one running EL6 (down right now as it is being rebuilt).
[http://jenkins.turbogears.org/computer/]

Where do we stand from this:
- We can create nodes on our cloud
- Seth created an Ansible routine to configure the nodes directly after
their creation [http://fpaste.org/jRX1/raw/]

So adding new nodes to a Jenkins instance becomes really easy and rather
fast.


If we want to run our own jenkins master:

This is the system I can think of:
* Configure the Jenkins master in a machine within the Fedora
infrastructure
* This master is not allowed to do build
* The master can send emails (current jenkins can not due to mail server
restrictions)
* All the builds ran in nodes in the cloud
* Nodes are reinstalled every 6 month, when there is a new version of
Fedora or when needed (via Ansible)
* Nodes can be thrown away at any time

Maintenance wise:
* Upstream provides a rpm and a repo
* the rpm is pretty much a .jar file and an init script doing java -jar
everything else is extracted the first time the app is deployed and goes
into /var/lib/jenkins
* we should be able to use mod_proxy or iptable to redirect the port
8080 (default) to 80.
* Master would have backup, but we should also be able to have an
Ansible routine to re-install it  (up to jenkins' configuration)


Thoughs/Questions/Suggestions/Comments?

Regards,
Pierre


More information about the infrastructure mailing list