web-dev-qa-db-fra.com

Comment exécuter jenkins en tant qu'utilisateur différent

J'ai essayé de suivre des tutoriels et celui-ci: Déployer en tant qu'utilisateur Jenkins ou Autoriser Jenkins à s'exécuter en tant qu'utilisateur différent?

mais je ne peux toujours pas, pour l'amour des dieux de l'informatique, utiliser un autre utilisateur. Voici les étapes de ce que j'ai fait:

  1. télécharger le paquet macosx pour jenkins (LTS)
  2. installer les plugins etc et git
  3. essayez de le construire

Je reçois toujours une erreur de clonage impossible car jenkins continue de démarrer de manière anonyme:

Started by user anonymous

Comment le configurer pour que jenkins fonctionne comme moi? J'utilisais l'interface utilisateur Web de Jenkins donc c'était dans localhost: 8080

J'ai essayé de me connecter également en utilisant/login mais je ne peux même pas me connecter en utilisant mon nom ou en tant que root.

L'onglet personnes n'a même pas de lien de création d'utilisateur, alors oui, je suis coincé. Aidez-moi, s'il vous plaît?

40
corroded

NUMÉRO 1:

Started by user anonymous

Cela ne signifie pas que Jenkins a commencé en tant qu'utilisateur anonyme.

Cela signifie simplement que la personne qui a commencé la génération n'était pas connectée. Si vous activez la sécurité Jenkins, vous pouvez créer des noms d'utilisateur pour les personnes et lorsqu'elles se connectent, le

"Started by anonymous" 

deviendra

"Started by < username >". 

Remarque: Vous n'avez pas besoin d'activer la sécurité pour exécuter jenkins ou pour cloner correctement.

Si vous souhaitez activer la sécurité et créer des utilisateurs, vous devriez voir les options dans Manage Jenkins > Configure System.


NUMÉRO 2:

L'erreur "ne peut pas cloner" est un tout autre problème. Cela n'a rien à voir avec votre connexion à jenkins ou l'activation de la sécurité. Cela signifie simplement que Jenkins n'a pas les informations d'identification pour cloner à partir de votre git SCM.

Consultez le plugin Jenkins Git pour voir comment configurer Jenkins pour fonctionner avec votre référentiel git.

J'espère que ça t'as aidé.

25
Sagar

La réponse "Issue 2" donnée par @Sagar fonctionne pour la majorité des serveurs git tels que gitorious.

Cependant, il y aura un conflit de noms dans un système comme gitolite où les clés ssh publiques sont archivées en tant que fichiers nommés avec le nom d'utilisateur, c'est-à-dire keydir/jenkins.pub. Que se passe-t-il s'il existe plusieurs serveurs jenkins qui doivent accéder au même serveur gitolite?

(Remarque: il s'agit d'exécuter le démon Jenkins sans exécuter un travail de génération en tant qu'utilisateur (résolu dans le "problème 1" de @ Sagar).)

Dans ce cas, vous devez donc exécuter le démon Jenkins en tant qu'utilisateur différent.

Il y a deux étapes:

Étape 1

L'essentiel est de mettre à jour le JENKINS_USER variable d'environnement. Voici un patch montrant comment changer l'utilisateur en ptran.

--- etc/default/jenkins.old     2011-10-28 17:46:54.410305099 -0700
+++ etc/default/jenkins 2011-10-28 17:47:01.670369300 -0700
@@ -13,7 +13,7 @@
 PIDFILE=/var/run/jenkins/jenkins.pid

 # user id to be invoked as (otherwise will run as root; not wise!)
-JENKINS_USER=jenkins
+JENKINS_USER=ptran

 # location of the jenkins war file
 JENKINS_WAR=/usr/share/jenkins/jenkins.war
--- etc/init.d/jenkins.old      2011-10-28 17:47:20.878539172 -0700
+++ etc/init.d/jenkins  2011-10-28 17:47:47.510774714 -0700
@@ -23,7 +23,7 @@

 #DAEMON=$JENKINS_SH
 DAEMON=/usr/bin/daemon
-DAEMON_ARGS="--name=$NAME --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG -   -pidfile=$PIDFILE" 
+DAEMON_ARGS="--name=$JENKINS_USER --inherit --env=JENKINS_HOME=$JENKINS_HOME --output=$JENKINS_LOG --pidfile=$PIDFILE" 

 SU=/bin/su

Étape 2

Mettre à jour la propriété des répertoires jenkins:

chown -R ptran /var/log/jenkins
chown -R ptran /var/lib/jenkins
chown -R ptran /var/run/jenkins
chown -R ptran /var/cache/jenkins

Étape 3

Redémarrez jenkins

Sudo service jenkins restart
35
Peter Tran

Sur Mac OS X, la façon dont j'ai permis à Jenkins de tirer de mon repo Github (privé) est:

Tout d'abord, assurez-vous que votre utilisateur possède le répertoire Jenkins

Sudo chown -R me:me /Users/Shared/Jenkins

Modifiez ensuite le plist LaunchDaemon pour Jenkins (à /Library/LaunchDaemons/org.jenkins-ci.plist) afin que votre utilisateur soit le GroupName et le UserName:

    <key>GroupName</key>
    <string>me</string>
...
    <key>UserName</key>
    <string>me</string>

Rechargez ensuite Jenkins:

Sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
Sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist

Ensuite, Jenkins, puisqu'il fonctionne comme vous, a accès à votre répertoire ~/.ssh qui contient vos clés.

10
commanda

Si vous voulez vraiment exécuter Jenkins comme vous, je vous suggère de consulter mon Jenkins.app. Un moyen simple et alternatif d'exécuter Jenkins sur Mac.

Voir https://github.com/stisti/jenkins-app/

Téléchargez-le depuis https://github.com/stisti/jenkins-app/downloads

9
sti