summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2015-09-28 18:09:08 +0200
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2015-09-28 18:09:08 +0200
commit4dc641492bdd919ce0b62ad80c91bee738113b16 (patch)
tree31d397b816773f9362fc54e439eb8eaaaf9df747
parent65dc9ef70b80d18c366f4b38d154e3b5a1a3f495 (diff)
Update slave connection document for Arno SR1arno.2015.2.0stable/arno
Change-Id: I65e21ecc4fd73e2153808855fd4b1b063b5ab69c Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rw-r--r--docs/opnfv-jenkins-slave-connection.rst106
1 files changed, 63 insertions, 43 deletions
diff --git a/docs/opnfv-jenkins-slave-connection.rst b/docs/opnfv-jenkins-slave-connection.rst
index 2adea18..bd9cbe1 100644
--- a/docs/opnfv-jenkins-slave-connection.rst
+++ b/docs/opnfv-jenkins-slave-connection.rst
@@ -1,9 +1,9 @@
-:Authors: Fatih Degirmenci (Ericsson AB)
-:Version: 0.1.0
+================================================
+Connecting OPNFV Community Labs to OPNFV Jenkins
+================================================
-================================
-Connecting Labs to OPNFV Jenkins
-================================
+.. contents:: Table of Contents
+ :backlinks: none
Abstract
========
@@ -12,43 +12,34 @@ This document describes how to connect resources (servers) located in Linux Foun
License
=======
-Connecting Labs to OPNFV Jenkins (c) by Fatih Degirmenci (Ericsson AB)
+Connecting OPNFV Community 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/>.
+Connecting OPNFV 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
+Version History
+===============
-2 Jenkins
++--------------------+--------------------+--------------------+----------------------+
+| **Date** | **Ver.** | **Author** | **Comment** |
+| | | | |
++--------------------+--------------------+--------------------+----------------------+
+| 2015-05-05 | 0.1.0 | Fatih Degirmenci | First draft |
+| | | | |
++--------------------+--------------------+--------------------+----------------------+
+| 2015-09-25 | 1.0.0 | Fatih Degirmenci | Instructions for the |
+| | | | Arno SR1 release |
++--------------------+--------------------+--------------------+----------------------+
-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
+=======
Jenkins is an extensible open source Continuous Integration (CI) server. [1]
Linux Foundation (LF) hosts and operates `OPNFV Jenkins <https://build.opnfv.org/ci/>`_.
-3 Jenkins Slaves
-==================
+Jenkins Slaves
+==============
**Slaves** are computers that are set up to build projects for a **Jenkins Master**. [2]
@@ -64,20 +55,20 @@ Two types of slaves are currently connected to OPNFV Jenkins and handling differ
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
-======================================
+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) <https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlp.html>`_.
-4.1 Connecting Slaves from LF Lab to OPNFV Jenkins
---------------------------------------------------
+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 <opnfv-helpdesk@rt.linuxfoundation.org>`_.
-4.2 Connecting Slaves from Community Labs to OPNFV Jenkins
-----------------------------------------------------------
+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.
@@ -90,8 +81,17 @@ Please follow below steps to connect a slave to OPNFV Jenkins.
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)
+6. Contact LF by sending mail to opnfv-helpdesk@rt.linuxfoundation.org as getting the server connected requires help from LF.
+7. Provide needed information to LF including the IP of the server, name of the slave, slave root, and your Public PGP key in order for LF to pass credentials to you securely. Please see the notes section for details regarding how to pass your Public PGP Key.
+
+ Slave IP: x.x.x.x
+
+ Slave name: company-build
+
+ Slave Root: /home/jenkins/opnfv_slave_root
+
+ PGP Key: (attached, or exported to key server)
+
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.
@@ -100,14 +100,34 @@ Please follow below steps to connect a slave to OPNFV Jenkins.
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
-==============
+Notes
+==========
+
+Keeping the slave.jar Up to Date
+--------------------------------
+
+It is important to keep the slave.jar up to date since OPNFV Jenkins version may be updated any time. In order to make sure you are using compatible version of slave.jar, you can download it from https://build.opnfv.org/ci/jnlpJars/slave.jar whenever you reopen the connection towards OPNFV Jenkins. You may experience random disconnects if you do not do this regularly.
+
+PGP Key Instructions
+--------------------
+
+Public PGP Key can be uploaded to public key server so it can be taken from there using your mail address. Example command to upload the key to key server is
+
+ ``gpg --keyserver hkp://keys.gnupg.net:80 --send-keys XXXXXXX``
+
+The Public PGP Key can also be attached to the email by storing the key in a file and then attaching it to the email.
+
+ ``gpg --export -a '<your email address>' > pgp.pubkey``
+
+References
+==========
+
* `What is Jenkins <https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins>`_
* `Jenkins Terminology <https://wiki.jenkins-ci.org/display/JENKINS/Terminology>`_
* `Jenkins SSH Slaves Plugin <https://wiki.jenkins-ci.org/display/JENKINS/SSH+Slaves+plugin>`_
-**Documentation tracking**
+**Documentation tracking**
Revision: _sha1_
Build date: _date_