Conf /usr/share/tomcat7/.jenkins/secrets/initialAdminPassword
vps523766.ovh.net: 42d0e9e480394290905a5ba37611ba38 --> server a brulé vps-e8fd6ad8.vps.ovh.net --> 2539b59dc5f541f3adfb0c197e1ec009 RBPI : a35d2b2db17447b9a558ba0058a5c282 (semble être old) ==> admin/abcd1234 RBPI3 : 67e26ae2043d47be99faa5543c5ba4ee (semble être old) ==> admin/abcd1234
Utilisateur :
vps523766.ovh.net : xavier/abcd1234 RBPI : xavier/abcd1234 RBPI3 : xavier/abcd1234
JENKINS est un ordonnanceur de tache, dédié à l'intégration continue. Le principe de base est surtout le suivant : A chaque push d'un commit effectué sur une branche d'un repo git :
JENKINS est mise en oeuvre par une appli web, servie par un moteur tomcat. Il existe aussi un outil (jar) en ligne de commande (voir plus bas).
Disposer de tomcat >= 7
sudo apt list --installed 2>&1 | grep tomc sudo apt-get remove tomcat6 sudo apt-get install tomcat7
ou dezziper le contenu du war pour faire le dossier /var/lib/tomcat7/webapps/jenkins
Si le war est récent, il est compilé avec une version récente de java. /usr/bin/java du raspberry est un lien symbolique vers une des alternatives de JDK installées sur le raspberry.
$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 mai 7 2015 /usr/bin/java → /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 51 déc. 28 21:08 /etc/alternatives/java → /usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt/jre/bin/java
=⇒ Il est possible de faire pointer ce lien symbolique sur une autre alternative en tappant les 2 commandes suivantes :
sudo update-alternatives --config java
sudo update-alternatives --config javac
Chacune des exécutions demandera quelle version utiliser.
tomcat utilise java, qui utilise un truststore bien connu : cacerts. Il s'agira de celui de la jdk de la jre utilisée pour lancer tomcat. JENKINS utilise par défaut un site web pour aller récupérer les plugins à installer. Le site par défaut est : https://updates.jenkins.io/update-center.json
Malheureusement, sa chaine de certification SSL n'est pas dans cacerts. Il faut donc récupérer le certificat racine et intermédiaire de la chaine de certification, en ouvrant un navigateur internet et en exportant les certificats au format base64. On créé les fichiers CA_Intermediaire.pem et CA_Racine.pem. Ensuite, on les importe dans le truststore cacerts de la manière suivante :
Les fichiers sont http://xms_rbpi/certificatSSLPourJenkins2018/CA_Racine.pem et http://xms_rbpi/certificatSSLPourJenkins2018/CA_Intermediaire.pem
sudo keytool -import -alias PourJenkinsIntermediaire -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file /home/debian/certificatSSLPourJenkins2018/CA_Intermediaire.pem
sudo keytool -import -alias PourJenkinsRoot -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file /home/debian/certificatSSLPourJenkins2018/CA_Racine.pem
Remarque : le mot de passe par défaut de cacerts est 'changeit', sans guillemet.
Aller dans la conf de tomcat, editer server.xml et remplacer son port 8080 par un port qui n'est pas et ne sera pas en écoute à part celui de tomcat.
Ca ce lance en lancant tomcat du coup.
sudo service tomcat7 start sudo service tomcat7 status
La première fois que jenkins est lancé, la webapp génèrera un mot de passe pour le compte admin. Elle le placera dans /usr/share/tomcat7/.jenkins/secrets/initialAdminPassword.
Tapper la commande suivante pour prendre le mot de passe :
cat /usr/share/tomcat7/.jenkins/secrets/initialAdminPassword
Il sera biensur possible de redéfinir son mot de passe par la suite, dans la configuration du compte.
Mon jenkins home est /var/lib/tomcat/jenkins \
Il faut s'assurer qu'il soit en rwx partout et appartienne à tomcat:tomcat
Dans le fichier /etc/tomcat9/context.xml, dans la balise contexte ajouter la ligne suivante :
<Environment name=”JENKINS_HOME” value=”/var/lib/jenkins” type=”java.lang.String” />
java.nio.file.FileSystemException : le système de fichiers en lecture seule apparaît dans tomcat9 \
Trouver et éditer le fichier tomcat9.service (moi il était dans /usr/lib/systemd/system) \ puis ajouter la ligne suivante :
ReadWritePaths=/le chemin de jenkins home (pour moi, c'est /var/lib/tomcat/jenkins)
Enfin, recharger le system de mise à jour des service
systemctl daemon-reload
Puis relancer tomcat
service tomcat restart
Dans le fichier /etc/tomcat9/context.xml, dans la balise contexte ajouter la ligne suivante :
<Resources cacheMaxSize="51200" />
Il se situe dans /usr/share/tomcat7/.jenkins : On y retrouve notamment les projets de build :
Après cela, vous verrez que vous créér un nouvel item, vous disposerez d'options SCM.
Créer un nouvel item, en sélectionnant SCM, git Ensuite, saisir le repo git (par exemple : https://github.com/newman79/scripts.git)
Puis cliquer sur ajouter credentials, et saisir ses identifiants github ( exemple : xavier.marquis@gmail.com/)
Ensuite choisir la branche (exemple : */master)
Puis cliquer sur ajouter.
Plus bas, dans ce qui déclenche le build, cocher 'Scrutation de l'outil de gestion de version'. Et saisir dans le champs Planning * * * * * (pour un scan toutes les minutes)
Enfin, créer autant de taches que vous souhaitez pour ce build
Puis cliquez sur “sauver”.
Maintenant, à chaque push de commit sur la branche de votre repo distant, jenkins lancera le build que vous venez de créer :
Il existe aussi un outil en ligne de commande permettant de script les opérations de maintenance : jenkins-cli.jar
Pour obtenir l'aide :
java -jar jenkins-cli.jar -s http://jenkins:8080/ help
Les Jenkins file permettent en gros de décrire les actions de build qu'on configure habituellement dans un build de jenkins.
@Library('pipeline-devin@02.14.03')Il existe donc chez RTE un projet gitlab nommé pipeline-devin, qui permet de consulter la documentation des méthodes publiées. Cette librairie contient des meta-méthodes stageDevin()