---
categories: dev
title: Howto Jenkins
...

* Documentation : <https://jenkins.io/doc/>

Jenkins est un outil open source d'intégration continue qui est écrit
en Java, Jenkins peut fonctionner dans un conteneur de servlets tel
qu’Apache Tomcat, ou en mode autonome avec son propre serveur Web
embarqué.

# *Installation*

Jenkins n’est pas disponible dans les dépôts Debian, il faut donc ajouter le dépôt comme suit:


~~~
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
~~~

Ensuite on procède à l’installation:

~~~
# apt update
apt install jenkins
~~~


# *Configuration*

Par défaut Jenkins utilise le port 8080, pour modifier cela, il faut modifier le fichier /etc/default/jenkins et modifier la ligne suivante:

~~~
HTTP_PORT=8080
~~~

Le */home* de jenkins se trouve dans:

~~~
/var/lib/jenkins/
~~~

Il faut créer par exemple la clé ssh de jenkins dans ce répertoire, en se connectant avec l'utilisateur jenkins en faisant:

~~~
su - jenkins
~~~

Puis générer la clé SSH.

## Modifier le repertoire temporaire de Jenkins

Souvent la partition /tmp est en noexec, ce qui pose des problèmes a Jenkins lors d'un clonage de dépôt où il y a besoin d’exécuter un script sh

On peut modifier le dossier tmp dans */var/lib/jenkins/tmp* et bien donner comme propriétaire *jenkins:jenkins* au dossier *tmp*

Il faut ensuite mettre la configuration suivant dans */etc/default/jenkins* :

~~~
# use a different tmpdir for jenkins
JAVA_ARGS="$JAVA_ARGS -Djava.io.tmpdir=/var/lib/jenkins/tmp/"
~~~

Pour le que dossier *tmp* soit vider au redémarrage de la machine, comme un vrai dossier /tmp, il faut le monter en *tmpfs* dans */etc/fstab* :

~~~
tmpfs                   /var/lib/jenkins/tmp        tmpfs    defaults,nosuid,nodev,size=1024m  0       0
~~~
