web-dev-qa-db-ja.com

Red Hat LinuxでJENKINS_HOMEを変更しますか?

私はこの手順を使用してJenkinsをインストールしました。

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

起動して実行した後、サーバー上の/ var/lib/jenkinsパーティションが非常に小さいことを発見しました。移動したいのですが、実行するユーザーを変更したくありません。私はLinuxが初めてで、困惑しています。たとえば、ホーム/パブリックフォルダーに移動するにはどうすればよいですか? 「Jenkins」ユーザーにはホームフォルダーがないようです。起動時にデーモンとして実行されるため、これらの設定を構成する場所がわかりません。 Jenkinsユーザーのホームフォルダーを作成できますか?どうやって?

私はこの記事を読みました:

https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins

「新しいJenkinsを家に置く」方法を理解していません。 exportコマンドを使用してサービスを再起動しましたが、Jenkinsの管理画面に古いパスが表示されたままです。

Stackoverflowの2〜3の同様の質問も読んだことがありますが、常に大きな欠落部分があります。パスを永続的に変更するファイルはどこにありますか?

27
Dilbertina

ここにあなたの問題を解決する簡単な方法があります。まず、Jenkinsディレクトリを/var/lib/jenkinsから/home/jenkinsに移動します。次に、/var/lib/jenkins/home/jenkinsを指すシンボリックリンクを作成します。そしてもちろん、それを行う前にJenkinsサービスを停止します。

Sudo service jenkins stop
Sudo mv /var/lib/jenkins /home
Sudo ln -s /home/jenkins /var/lib/jenkins
Sudo service jenkins start
38
David Levesque

次のように/ etc/sysconfig/jenkinsファイルの内容を変更することで、Jenkinsのホームロケーションを変更できました。

JENKINS_HOME="/home/jenkins"
14
Richard Chen

さて、あなたの質問をもう少し詳しく読み直して、これを理解できるかどうか見てみましょう。あなたが知っているかもしれないし、知らないかもしれないいくつかの情報をリストするつもりです。

  1. Jenkinsのインストールとjenkinsのホームは同じものではありません。 1つは、jenkinsがライブで実行する必要があるwarファイルおよびその他の部分です。 jenkins_homeは、データが保存される場所です。デフォルトでは、jenkins_homeは〜/ .jenkinsにあります。 jenkinsを起動すると、環境変数が検索され、それらのファイルの場所が示されます。

  2. Jenkinsは別のユーザーとして実行されます。デフォルトではjenkinsです。この方法では、あなたの邪魔になりません。 jenkinsユーザーは自分のホームディレクトリにアクセスできないため、これは不十分なソリューションになります。理想的には、独自のホームディレクトリ/ home/jenkinsがあります。ホームディレクトリは/home/jenkins/.jenkinsになります。あなたはそのフォルダが存在しないと言う-あなたがそれを自分で作成するためのアクセス権を持っていない場合、それは完全に素晴らしいです、あなたは任意のフォルダを指定することができます。ただし、jenkinsユーザーは、そのフォルダーの読み取りと書き込みを行うためにそのフォルダーの所有権を持っている必要があります。

  3. RedhatのJenkinsはデフォルトでTomcatで実行されるようです。 Tomcatの環境変数を設定する方法のドキュメントは https://wiki.jenkins-ci.org/display/JENKINS/Tomcat です。

  4. これはすべてスクリプトで設定されます。 https://wiki.jenkins-ci.org/display/JENKINS/JenkinsLinuxStartupScript はこの目的に使用されます。シェルスクリプトについて何も知らなくても、これは難しくありません...#の行はコメントです。最初の行

    JENKINS_USER = jenkins

jenkinsが使用するユーザーアカウントの名前を設定します。 littlleをさらに見下ろすと、次の行が表示されます。

export JENKINS_BASEDIR=/home/jenkins

export CATALINA_OPTS="-DJENKINS_HOME=$JENKINS_BASEDIR/jenkins-home -Xmx512m -Djava.awt.headless=true"

これにより、jenkinsが存在するディレクトリを設定し、jenkins_homeディレクトリをその/ jenkins-homeに設定できます。

アプリケーションでは、このようなことをしたいかもしれません

export CATALINA_OPTS="-DJENKINS_HOME=/var/jenkinsmount/home -Xmx512m -Djava.awt.headless=true"

これにより、すべてのビルドデータ(成長する部分です!)が/ var/jenkinsmount/homeに保存され、残りのファイルは現在の場所に残ります。

私はredhatでそれを使用していませんが、うまくいくように、何が起こっているのかを実際に理解するのに十分な説明をしたいです!

他の情報:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Unix+daemon

7
Paul Becotte

私は同じ問題と質問に直面しました。いくつかのドットを接続すると、同じ問題のためにジェンキンスを新しい場所に移動した後、ジェンキンスを修正できました-/ var/lib/jenkinsの下のディスクのスペース。

これは、Jenkinsがデフォルト以外のポートを指していることを考慮して、機能させるために従わなければならなかった手順です。 (このプロセスを2つのサーバーに適用しました)

まず、Jenkinsディレクトリを/ var/lib/jenkinsから/ opt/jenkinsに移動します

Sudo service jenkins stop
Sudo mv /var/lib/jenkins /opt/

これで、ワークスペースとビルドディレクトリをマシン上の他の場所に変更できます。 Jenkinsは、新しい場所を指定するために使用できる3つの定義済み変数を提供します。

JENKINS_HOME — Jenkinsホームディレクトリ

ITEM_ROOTDIR —ワークスペースが割り当てられているジョブのルートディレクトリ

ITEM_FULLNAME —「/」で区切られたジョブ名(「foo/bar」など)

Sudo su jenkins (access as Jenkins user)
JENKINS_HOME=/opt/jenkins
ITEM_ROOTDIR=/opt/jenkins
ITEM_FULLNAME=/opt/jenkins
exit (exit Jenkins user)

今、ジェンキンスの設定を編集します

/opt/jenkins$ Sudo nano /etc/default/jenkins

次の行を変更します

#jenkins home location
#JENKINS_HOME=/var/lib/$NAME (here is the default)
JENKINS_HOME=/opt/jenkins (that is our new location)

ユーザーのホームディレクトリを変更する

Sudo usermod -d /opt/jenkins/ jenkins
Sudo service jenkins start
5
SFmtl

Richard Chenの場所は、CentOS 6.6システムでjenkinsファイルを見つけた場所です。

  1. 須藤サービスジェンキンスストップ
  2. mv/var/lib/jenkins/home/mylocation /
  3. (新しい場所の所有権とグループが正しいことを確認してください-ジェンキンス)
  4. ファイル/ etc/sysconfig/jenkinsの内容を次のように変更しました。

    JENKINS_HOME = "/ home/mylocation"

  5. 須藤サービスジェンキンス開始
1
Bluefishzx

誰かがスペースの問題を抱えていて、ジェンキンを再配置する必要がある場合は、次のことを繰り返してください。

  1. Sudo service jenkins stop
  2. Sudo mv /var/lib/jenkins /home
  3. Sudo ln -s /home/jenkins /var/lib/jenkins
  4. Sudo service jenkins start

数年前にその回答を投稿してくれた人に感謝します!

1
JAS

以下のようにいくつかのコマンドが動作します:

ステップ1:jenkinサービスと移動フォルダーを停止します

systemctl stop jenkins
mv /var/lib/jenkins /whatever/folder
Sudo chown jenkins -R /whatever/folder

ステップ2:/ etc/default/jenkinsのjenkinsホームの場所を変更する

JENKINS_HOME=/whatever/folder/$NAME

ステップ3:jenkinsサービスを再起動する

systemctl start jenkins
0
Vô Ảnh