DOKK Library

Connecting Labs to OPNFV Jenkins v0.1.0

Authors Fatih Degirmenci

License CC-BY-4.0

Plaintext
        Authors:    Fatih Degirmenci (Ericsson AB)
        Version:    0.1.0


Connecting Labs to OPNFV Jenkins
Abstract
This document describes how to connect resources (servers) located in Linux Foundation (LF) lab and
labs provided by the OPNFV Community to OPNFV Jenkins.

License
Connecting Labs to OPNFV Jenkins (c) by Fatih Degirmenci (Ericsson AB)
Connecting Labs to OPNFV Jenkins document is licensed under a Creative Commons Attribution 4.0
International License. You should have received a copy of the license along with this. If not, see
<http://creativecommons.org/licenses/by/4.0/>.
Contents
1 Version history
2 Jenkins
3 Jenkins Slaves
4 Connecting Slaves to OPNFV Jenkins
5 References

1 Version History
 Date                       Ver.                       Author                      Comment
 2015-05-05                 0.1.0                      Fatih Degirmenci            First draft


2 Jenkins
Jenkins is an extensible open source Continuous Integration (CI) server. [1]
Linux Foundation (LF) hosts and operates OPNFV Jenkins.

3 Jenkins Slaves
Slaves are computers that are set up to build projects for a Jenkins Master. [2]
Jenkins runs a separate program called "slave agent" on slaves. When slaves are registered to a master,
the master starts distributing loads to slaves. [2]
Term Node is used to refer to all machines that are part of Jenkins grid, slaves and master. [2]
Two types of slaves are currently connected to OPNFV Jenkins and handling different tasks depending on
the purpose of connecting the slave.

   • Slaves hosted in LF Lab
   • Slaves hosted in Community Test Labs
The slaves connected to OPNFV Jenkins can be seen using this link: https://build.opnfv.org/ci/computer/
Slaves without red cross next to computer icon are fully functional.
4 Connecting Slaves to OPNFV Jenkins
The method that is normally used for connecting slaves to Jenkins requires direct SSH access to servers.
[3] This is the method that is used for connecting slaves hosted in LF Lab.
Connecting slaves using direct SSH access can become a challenge given that OPNFV Project has
number of different labs provided by community as mentioned in previous section. All these labs have
different security requirements which can increase the effort and the time needed for connecting slaves to
Jenkins. In order to reduce the effort and the time needed for connecting slaves and streamline the
process, it has been decided to connect slaves using Java Network Launch Protocol (JNLP).

4.1 Connecting Slaves from LF Lab to OPNFV Jenkins
Slaves hosted in LF Lab are handled by LF. All the requests and questions regarding these slaves should
be submitted to OPNFV LF Helpdesk.

4.2 Connecting Slaves from Community Labs to OPNFV Jenkins
As noted in corresponding section, slaves from Community Labs are connected using JNLP. Via JNLP,
slaves open connection towards Jenkins Master instead of Jenkins Master accessing to them directly.
Servers connecting to OPNFV Jenkins using this method must have access to internet.
Please follow below steps to connect a slave to OPNFV Jenkins.

  1. Create a ticket by sending mail to OPNFV LF Helpdesk first, opnfv-helpdesk@rt.linuxfoundation.org.
  2. Ensure DNS is setup for your public IP addresses: DNS A records and PTR records need to be
     matching.
  3. Create a local user on server you want to connect to OPNFV Jenkins. (named jenkins for example)
  4. Download slave.jar using https://build.opnfv.org/ci/jnlpJars/slave.jar and place it to somewhere so
     jenkins user created in previous step can access.
  5. Create a directory /home/jenkins/opnfv_slave_root.
  6. Contact LF via chat as getting the server connected requires help from LF. (aricg on freenode)
  7. Provide needed information to LF such as the IP of the server, name of the slave, and slave root.
     (/home/jenkins/opnfv_slave_root for example)
  8. LF will provide you the key/token you need to use.
  9. Try to see if you can establish connection towards OPNFV Jenkins by using below command.
java                          -jar                        slave.jar                       -jnlpUrl
https://build.opnfv.org/ci/computer/<slave_name>/slave-agent.jnlp                          -secret
<token>

 10. Navigate to OPNFV Jenkins and look for your slave. It should have some executors in “Idle” state if
     the connection is successful.
 11. Once you reach this step, you have the server connection to OPNFV Jenkins completed. You can
     script the command you used above so the connection between slave and Jenkins can be kept
     open.

5 References
   • What is Jenkins
   • Jenkins Terminology
   • Jenkins SSH Slaves Plugin
Documentation tracking
Revision: 4da0ef590a1c15f95c1c5f30abf5e99d6ffd24e0
Build date: Thu Jun 4 00:15:02 UTC 2015