J'ai installé Jenkins sur Cnetos 7 en utilisant les éléments suivants:
Sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
Sudo rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
comme décrit sur la documentation officielle
Cependant quand je cours:
service start jenkins
Je reçois le message d'erreur suivant:
Starting jenkins (via systemctl): Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[FAILED]
Lancer systemctl status jenkins.service
me donne ceci:
● jenkins.service - LSB: Jenkins Continuous Integration Server
Loaded: loaded (/etc/rc.d/init.d/jenkins)
Active: failed (Result: exit-code) since Wed 2016-09-21 16:45:28 BST; 3min 59s ago
Docs: man:systemd-sysv-generator(8)
Process: 2818 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.JavaVMArguments.of(JavaVMArguments...04)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.JavaVMArguments.current(JavaVMArgu...92)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.Daemon.daemonize(Daemon.Java:106)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.Daemon.all(Daemon.Java:88)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: ... 6 more
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service: control process exited, code=exited s...s=1
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Failed to start LSB: Jenkins Continuous Integration Server.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Unit jenkins.service entered failed state.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service failed.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: [FAILED]
Hint: Some lines were ellipsized, use -l to show in full.
et courir journalctl -xe
me donne ceci:
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.JavaVMArguments.of(JavaVMArguments.Java:
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.JavaVMArguments.current(JavaVMArguments.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.Daemon.daemonize(Daemon.Java:106)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: at com.Sun.akuma.Daemon.all(Daemon.Java:88)
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: ... 6 more
Sep 21 16:45:28 webstack.local.caplib runuser[2819]: pam_unix(runuser:session): session closed for user jenkin
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service: control process exited, code=exited status=
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Failed to start LSB: Jenkins Continuous Integration Server.
-- Subject: Unit jenkins.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit jenkins.service has failed.
--
-- The result is failed.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: Unit jenkins.service entered failed state.
Sep 21 16:45:28 webstack.local.caplib systemd[1]: jenkins.service failed.
Sep 21 16:45:28 webstack.local.caplib jenkins[2818]: [FAILED]
Sep 21 16:45:28 webstack.local.caplib polkitd[1392]: Unregistered Authentication Agent for unix-process:2813:8
Sep 21 16:45:28 webstack.local.caplib dhclient[1390]: DHCPREQUEST on eno16777984 to 192.168.15.254 port 67 (xi
Sep 21 16:45:28 webstack.local.caplib dhclient[1390]: DHCPACK from 192.168.15.254 (xid=0x2ab6e6bc)
Sep 21 16:45:30 webstack.local.caplib dhclient[1390]: bound to 192.168.15.120 -- renewal in 865 seconds.
Sep 21 16:45:36 webstack.local.caplib systemd[1]: Starting Cleanup of Temporary Directories...
-- Subject: Unit systemd-tmpfiles-clean.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has begun starting up.
Sep 21 16:45:36 webstack.local.caplib systemd[1]: Started Cleanup of Temporary Directories.
-- Subject: Unit systemd-tmpfiles-clean.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has finished starting up.
--
-- The start-up result is done.
Ce qui est vraiment inutile. Comment résoudre ce problème?
Problème similaire sur Ubuntu 16.04.
Setting up jenkins (2.72) ...
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
invoke-rc.d: initscript jenkins, action "start" failed.
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-08-01 05:39:06 UTC; 7ms ago
Docs: man:systemd-sysv-generator(8)
Process: 3700 ExecStart=/etc/init.d/jenkins start (code=exited, status=1/FAILURE)
Aug 01 05:39:06 ip-0 systemd[1]: Starting LSB: Start Jenkins ....
Aug 01 05:39:06 ip-0 jenkins[3700]: ERROR: No Java executable ...
Aug 01 05:39:06 ip-0 jenkins[3700]: If you actually have Java ...
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Control pro...1
Aug 01 05:39:06 ip-0 systemd[1]: Failed to start LSB: Start J....
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Unit entere....
Aug 01 05:39:06 ip-0 systemd[1]: jenkins.service: Failed with....
Pour résoudre le problème manuellement, installez Java Runtime Environment:
JDK version 9:
Sudo apt install openjdk-9-jre
JDK version 8:
Sudo apt install openjdk-8-jre
Ouvrez le fichier de configuration Jenkins:
Sudo vi /etc/init.d/jenkins
Enfin, ajoutez le chemin au nouvel exécutable Java (ligne 16):
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib/jvm/Java-8-openjdk-AMD64/bin/
ERREUR: Linux/Centos:
Le travail pour jenkins.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur. Voir "systemctl status jenkins.service" et "journalctl -xe" pour plus de détails.
Solution:
Editez le fichier init Jenkins en faisant
Sudo vi /etc/init.d/jenkins
Ajoutez votre propre chemin Java, par exemple:
/opt/Oracle/product/Java/jdk1.8.0_45/bin/Java
Redémarrez le service:
Sudo service jenkins start
Sudo service jenkins status
Sudo service jenkins stop
J'ai eu un problème similaire sur Ubuntu 16.04. Grâce à @Guna, j'ai compris que je devais installer manuellement Java (Sudo apt install openjdk-8-jre
).
J'ai eu un problème similaire sur CentOS 7 alors qu'une version correcte de Java était installée et Java -version
donnait un résultat satisfaisant.
En collectant plusieurs réponses à partir de différents SO fils, j'ai procédé comme suit:
Assurez-vous que Java est installé (et que la version est compatible avec Jenkins) Voici quelques astuces si vous dites à propos de CentOS, cela est mentionné dans le tutoriel officiel Jenkins ici
Si Java est installé et disponible, lors de l'exécution de Java -v
, le résultat devrait ressembler à ceci:
~>$Java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
Ajouter un chemin vers Java dans votre /etc/rc.d/init.d/jenkins
~>$ Sudo vim /etc/rc.d/init.d/jenkins
candidates="
/etc/alternatives/Java
/usr/lib/jvm/Java-1.8.0/bin/Java
/usr/lib/jvm/jre-1.8.0/bin/Java
/usr/lib/jvm/Java-1.7.0/bin/Java
/usr/lib/jvm/jre-1.7.0/bin/Java
/usr/bin/Java
/usr/Java/jdk1.8.0_162/bin/Java ##add your Java path here
"
Comment obtenir votre "vrai" chemin vers la distribution Java qui est appelée lorsque vous tapez smth comme Java -v
Suivez this SO
Si les étapes ci-dessus n'ont pas aidé, essayez de vous assurer que tous les problèmes d'autorisation sont résolus:
jenkins
soit dépourvu des autorisations nécessaires, puis remplacez jenkins
par root
dans config (décrit ici)chmod
en définissant les autorisations 755
dans le dossier d'installation Java
.Et finalement, ce qui m'a aidé dans le résultat Quand j'ai exécuté journalctl -xe
comme suggéré lorsque j'ai essayé de Sudo service jenkins start
, j'ai obtenu un stacktrace Java similaire:
Starting CloudBees Jenkins Enterprise Exception in thread "main" Java.lang.reflect.InvocationTargetException
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at Main._main(Main.Java:140)
at Main.main(Main.Java:98)
Caused by: Java.lang.UnsatisfiedLinkError: /tmp/jna--1712433994/jna7387046629130767794.tmp: /tmp/jna--1712433994/jna7387046629130767794.tmp: failed to map segment from shared object: Operation not permitted
at Java.lang.ClassLoader$NativeLibrary.load(Native Method)
at Java.lang.ClassLoader.loadLibrary0(ClassLoader.Java:1937)
at Java.lang.ClassLoader.loadLibrary(ClassLoader.Java:1822)
at Java.lang.Runtime.load0(Runtime.Java:809)
at Java.lang.System.load(System.Java:1086)
at com.Sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.Java:761)
at com.Sun.jna.Native.loadNativeDispatchLibrary(Native.Java:736)
at com.Sun.jna.Native.<clinit>(Native.Java:131)
at com.Sun.akuma.CLibrary.<clinit>(CLibrary.Java:89)
at com.Sun.akuma.JavaVMArguments.resolvePID(JavaVMArguments.Java:128)
at com.Sun.akuma.JavaVMArguments.ofLinux(JavaVMArguments.Java:116)
at com.Sun.akuma.JavaVMArguments.of(JavaVMArguments.Java:104)
at com.Sun.akuma.JavaVMArguments.current(JavaVMArguments.Java:92)
at com.Sun.akuma.Daemon.daemonize(Daemon.Java:106)
at com.Sun.akuma.Daemon.all(Daemon.Java:88)
... 6 more
Le problème est que Jenkins essaie de lancer la bibliothèque JNA
à partir de /tmp
dir qui est marqué par défaut noexec
, nous pouvons donc le réparer en créant un répertoire temporaire dans un chemin /jenkins
afin de pouvoir l’exécuter ..__ ceci est décrit ici par le support CloudBees (merci beaucoup pour eux)
J'espère que quelque chose de cette liste aidera (en plus, je le laisse surtout pour l'avenir lorsque je devrai installer Jenkins pour CentOs à nouveau :)
J'avais le même problème et lorsque j'ai vérifié si Java est installé, j'ai réalisé que ce n'était pas le cas, donc installer Java a résolu le problème pour moi.
Vérifier pour Java:
Java -version
Si Java est installé sur le système, la commande renverra la version Java, sinon un message comme celui-ci s'affichera.
The program 'Java' can be found in the following packages:
* default-jre
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* gcj-4.9-jre-headless
* openjdk-9-jre-headless
Pour installer Java, utilisez la commande suivante.
Sudo apt-get install default-jre
Toujours en train de lutter contre la même erreur sur les deux ubuntu, dérivés et opensuse. C'est un excellent moyen de contourner et d'aller de l'avant jusqu'à ce que vous puissiez résoudre le problème.
Il suffit d'utiliser l'image du menu fixe pour les jenkins de dockerhub.
_ {docker tire jenkins/jenkins}
docker run -itd -p 8080: 8080 --name jenkins_container jenkins}
Utilisez le navigateur pour accéder à:
localhost: 8080 ou my_pc: 8080
Pour accéder au jeton dans le chemin indiqué sur l’écran de connexion:
docker exec -it jenkins_container/bin/bash
Ensuite, accédez au fichier de jeton et copiez/collez le code dans l'écran de connexion. Vous pouvez utiliser les menus edit/copier/coller des terminaux kde/gnome/lxde/xfce pour copier le texte du terminal, puis le coller avec ctrl-v
Fichier de guerre
Ou utilisez le fichier jenkins.war. Pour des raisons de développement, vous pouvez exécuter jenkins en tant qu'utilisateur (ou en tant que jenkins) à partir de la ligne de commande ou créer un court script dans/usr/local ou/opt pour le démarrer.
Téléchargez le fichier jenkins.war à partir de la page de téléchargement de jenkins:
Ensuite, placez-le dans un endroit sûr, ~/Jenkins serait un bon endroit.
mkdir ~/jenkins; cp ~/Téléchargements/jenkins.war ~/jenkins
Puis lancez:
Nohup Java -jar ~/jenkins/jenkins.war> ~/jenkins/jenkins.log 2> & 1
Pour obtenir le jeton de mot de passe administrateur initial, copiez la sortie texte de:
cat /home/my_home_dir/.jenkins/secrets/initialAdminPassword} _
et collez-le dans la case avec ctrl-v comme mot de passe administrateur initial.
J'espère que cela est suffisamment détaillé pour vous mettre sur la bonne voie ...
J'essayais de l'installer dans kubuntu 18.04, et j'étais déjà sûr d'avoir Java installé, .__, j'ai confirmé en essayant
Version Java
J'ai la sortie comme ça
Java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Comme je sais déjà que mes variables Java PATH sont définies dans le fichier/etc/environment, j'ai ajouté ce fichier au sommet du fichier /etc/init.d/jenkins.
source /etc/environment
vous pouvez même supprimer le PATH du fichier /etc/init.d/jenkins, puisqu'il est déjà défini dans/etc/environment
après cela, j’ai redémarré mon serveur jenkins, et il a semblé que tout commençait à bien fonctionner à partir de localhost: 8080
Ajoutant à ce qui a déjà été répondu par Guna Sekaran. Jenkins a besoin de l’utilisateur jenkins pour pouvoir exécuter les jenkins en tant que service.
Pour ajouter l'utilisateur, lancez 'useradd jenkins' en tant que racine Et lancez 'passwd jenkins' en tant que root avant de lancer Jenkins en tant que service.
~> $ Sudo vim /etc/rc.d/init.d/jenkins
candidats = "
/ etc/alternatives/Java
/usr/lib/jvm/Java-1.8.0/bin/Java
/usr/lib/jvm/jre-1.8.0/bin/Java
/usr/lib/jvm/Java-1.7.0/bin/Java
/usr/lib/jvm/jre-1.7.0/bin/Java
/ usr/bin/Java
/usr/Java/jdk1.8.0_162/bin/Java ## ajouter votre chemin Java
"
Vous devez simplement installer Java . Cela a fonctionné après l’installation de Java version 8, En utilisant cette commande: Sudo apt install openjdk-8-jre-headless
Avant d’installer Jenkins, vous devez installer JDK:
apt install openjdk-8-jre
Après cette installation Jenkins:
apt-get install jenkins
Et vérifiez le statut de Jenkins (devrait être 'actif'):
systemctl status jenkins.service
J'ai rencontré le même problème lors de la configuration de Jenkins, le problème est que Java n'est pas installé et n'est donc pas disponible dans path.
Le moyen le plus simple est d'utiliser scp ici pour copier les fichiers binaires JDK dans aws ec2 box, le script ne fonctionnera pas si vous en créez un, car ils continuent de mettre à jour les URL de téléchargement (Orale, je veux dire): scp -i C: /Users/key-pair.pem jdk-8u191-linux-x64.tar.gz ec2- [email protected]: ~ /
$cd /opt
$Sudo cp /home/ec2-user/jdk* .
$Sudo chmod +x jdk*
$Sudo tar xzf jdk-8u191-linux-x64.tar.gz
$Sudo tar xzf jdk-8u191-linux-x64.tar.gz
$cd jdk1.8.0_191/
$Sudo alternatives --install /usr/bin/Java java /opt/jdk1.8.0_191/bin/Java 2
$Sudo alternatives --config Java
Ici, je télécharge le fichier tar.gz dans des fenêtres locales et le transfère sur scp vers AWS ec2-user, répertoire par défaut. J'espère que ça aide.
Pour Ubuntu 16.04, il y a un problème de pare-feu. Vous devez ouvrir le port 8080 à l'aide de la commande suivante:
Sudo ufw allow 8080
Les étapes détaillées sont indiquées ici: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04
Ressemble à des conflits de version Java.
Veuillez consulter https://medium.com/lucian-daniliuc/upgrading-jenkins-on-ubuntu-14-04-lts-df3e1209f98c