web-dev-qa-db-ja.com

別のユーザーとしてジェンキンを実行する方法

私はチュートリアルとこれをフォローしようとしています: Jenkinsユーザーとしてデプロイするか、Jenkinsを別のユーザーとして実行することを許可しますか?

しかし、コンピューティングの神の愛のために、別のユーザーとして実行することはできません。ここに私がしたことのステップがあります:

  1. jenkins(LTS)用macosx pkgをダウンロードします
  2. セットアッププラグインなどとgit
  3. それを構築してみてください

Jenkinsが匿名で起動し続けるため、クローンできないエラーが発生し続けます。

Started by user anonymous

ジェンキンスが私として実行されるように設定するにはどうすればよいですか?私はジェンキンスのWeb UIを使用していたので、localhost:8080にありました

/ loginを使用してログインしようとしましたが、自分の名前またはルートとしてログインすることもできません。

ピープルタブにはユーザー作成リンクさえありませんので、そうです。助けてください?

40
corroded

問題1:

Started by user anonymous

それはではないは、Jenkinsが匿名ユーザーとして開始したことを意味します。

これは、ビルドを開始した人がログインしていないことを意味します。Jenkinsセキュリティを有効にすると、ユーザーのユーザー名を作成できます。ログインすると、

"Started by anonymous" 

に変わります

"Started by < username >". 

注:ジェンキンを実行したり、正しくクローンを作成したりするために、セキュリティを有効にする必要はありません。

セキュリティを有効にしてユーザーを作成する場合は、Manage Jenkins > Configure System


問題2:

「クローンできない」エラーはまったく別の問題です。 jenkinsへのログインやセキュリティの有効化とは関係ありません。 Jenkinsがgit SCMからクローンを作成するための資格情報を持っていないことを意味します。

Jenkins Gitプラグイン をチェックして、gitリポジトリーで動作するようにJenkinsをセットアップする方法を確認してください。

お役に立てば幸いです。

25
Sagar

@Sagarによる「問題2」の回答は、gitoriousなどの大部分のgitサーバーで機能します。

ただし、次のようなシステムでは名前の衝突が発生します ジトライト ここで、公開sshキーは、ユーザー名で名前が付けられたファイル、つまりkeydir/jenkins.pubとしてチェックインされます。同じgitoliteサーバーにアクセスする必要がある複数のjenkinsサーバーがある場合はどうなりますか?

(注:これは、ユーザーとしてビルドジョブを実行せずにJenkinsデーモンを実行することに関するものです(@Sagarの "Issue 1"で対処)。)

そのため、この場合、Jenkinsデーモンを別のユーザーとして実行する必要があります。

2つのステップがあります。

ステップ1

主なことは、JENKINS_USER環境変数を更新することです。ユーザーを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

ステップ2

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

ステップ3

ジェンキンスを再起動する

Sudo service jenkins restart
35
Peter Tran

Mac OS Xでは、Jenkinsが(プライベート)Githubリポジトリからプルできるようにする方法は次のとおりです。

まず、ユーザーがJenkinsディレクトリを所有していることを確認します

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

次に、JenkinsのLaunchDaemon plist(/Library/LaunchDaemons/org.jenkins-ci.plist)を編集して、ユーザーがGroupNameおよびUserNameになるようにします。

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

次に、ジェンキンスをリロードします。

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

次に、Jenkinsは、あなたと同じように実行されているため、キーがある〜/ .sshディレクトリにアクセスできます。

10
commanda

Jenkinsを実際に実行したい場合は、Jenkins.appをチェックすることをお勧めします。 MacでJenkinsを実行する代替の簡単な方法。

https://github.com/stisti/jenkins-app/ を参照してください

https://github.com/stisti/jenkins-app/downloads からダウンロードしてください

9
sti