web-dev-qa-db-ja.com

Jenkinsでワークスペースを変更し、レコードルートディレクトリを作成する方法

Jenkinsのデータをドライブ「E:」に書き込むようにしたいのは、これがサーバー上の大きなドライブだからです。 Jenkins自体は「C:」にインストールされます。

それ、どうやったら出来るの?

私が見たデフォルトの構成は次のとおりです。

ワークスペースルートディレクトリ: $ {ITEM_ROOTDIR}/workspace
レコードルートディレクトリのビルド: $ {ITEM_ROOTDIR}/builds

次の変更は、必要なものを達成するのに役立ちますか?

ワークスペースルートディレクトリ: E:/ Jenkins/workspace
ビルドレコードのルートディレクトリ: E:/ Jenkins/builds/$ {ITEM_FULL_NAME}

また、「$ {ITEM_FULL_NAME}」とはどういう意味ですか?

32
Yaniv Ofer

私はそれを考え出した。 Jenkinsデータを他のドライブに保存するには、次のことを行う必要があります。

ワークスペースルートディレクトリ: E:\ Jenkins\$ {ITEM_FULL_NAME}\workspace
ビルドレコードのルートディレクトリ: E:\ Jenkins\$ {ITEM_FULL_NAME}\builds

Change Directory

33
Yaniv Ofer

編集:他のコメントによると、「高度な...」ボタンはJenkinsのより新しいバージョンで削除されたようです。バージョンにない場合は、 knorx's answerを参照してください

同じ問題があり、 この古いプルリクエスト を見つけた後でも、システムレベルでワークスペースルートディレクトリまたはビルドレコードルートディレクトリを指定する場所を見つけるのに苦労しました。ジョブ。

これらを設定するには:

  1. Jenkins-> Manage Jenkins-> Configure Systemに移動します
  2. 右上の[Home directory]の下で、[Advanced...]ボタンをクリックします。 advanced button under Home directory
  3. これで、Workspace Root DirectoryおよびBuild Record Root Directoryのフィールドが表示されます。 additional directory options
  4. 各オプションの左側にあるヘルプの吹き出しをクリックすると表示される情報は非常に有益です。特に(Workspace Root Directoryヘルプから):

    この値には、次の変数が含まれる場合があります。

    • ${JENKINS_HOME} — Jenkinsホームディレクトリの絶対パス
    • ${ITEM_ROOTDIR} — Jenkinsが特定のジョブの設定と関連メタデータを保存するディレクトリの絶対パス
    • ${ITEM_FULL_NAME} —特定のジョブのフルネーム。スラッシュで区切られている場合があります。フォルダfooのジョブバーのfoo/bar


    通常、値には${ITEM_ROOTDIR}または${ITEM_FULL_NAME}を含める必要があります。そうしないと、異なるジョブが同じワークスペースを共有することになります。

24
c32hedge

デフォルトのディレクトリにあるconfig.xmlファイルのパスを変更できます

<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>D:/Workspace/${ITEM_FULL_NAME}</workspaceDir>
<buildsDir>D:/Logs/${ITEM_ROOTDIR}/Build</buildsDir>
16
adil ameen

必要な変数については、jenkins wikiで説明しています: https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties

デフォルト変数ITEM_ROOTDIRは、jenkinsインストール内のディレクトリを指します。すでにわかったように、次のものが必要です。

  • ワークスペースルートディレクトリ:E:/ myJenkinsRootFolderOnE/$ {ITEM_FULL_NAME}/workspace
  • ビルドレコードのルートディレクトリ:E:/ myJenkinsRootFolderOnE/$ {ITEM_FULL_NAME}/builds

これは最近のconfig.xmlで実現する必要があります。上にリンクされたwikiページから引用:

これは以前はUI設定でしたが、既存のビルドレコードの移行をサポートせず、再起動するまでビルド関連のエラーにつながる可能性があるため、2.119で削除されました。

10
knorx

/ etc/default/jenkinsを編集することをお勧めします

vi /etc/default/jenkins

そして、$ JENKINS_HOME変数(23行目付近)を

JENKINS_HOME=/home/jenkins

その後、通常の方法でJenkinsを再起動します

/etc/init.d/jenkins start

乾杯!

1
Kathan Shah

JENKINS_HOMEディレクトリのconfig.xmlファイルを編集することもできます。 c32hedgeの応答を参照として使用し、ワークスペースの場所をタグ間の任意の場所に設定します

0
Arier

デフォルトでは、Jenkinsはすべてのデータをファイルシステム上のこのディレクトリに保存します。

Jenkinsのホームディレクトリを変更するには、いくつかの方法があります。

  • Jenkins構成ファイルのJENKINS_HOME変数を編集します(たとえば、Red Hat Linuxの/etc/sysconfig/jenkins)。
  • Webコンテナの管理ツールを使用して、JENKINS_HOME環境変数を設定します。
  • Webコンテナを起動する前、またはWARファイルからJenkinsを直接起動する前に、環境変数JENKINS_HOMEを設定します。
  • Webコンテナを起動するとき、またはWARファイルからJenkinsを直接起動するときに、JENKINS_HOME Javaシステムプロパティを設定します。
  • Jenkins.warのweb.xml(またはWebコンテナー内の展開画像)を変更します。これは推奨されません。 Jenkinsの実行中は、この値を変更できません。ここに表示されているのは、構成が有効になっていることを確認するためです。
0
Pravin

[ホーム]の下の[構成]に移動すると、次の方法に関する「ヘルプ」メモがあります。

ホームディレクトリ/ var/lib/jenkins機能のヘルプ:ホームディレクトリ

デフォルトでは、Jenkinsはすべてのデータをファイルシステム上のこのディレクトリに保存します。

Jenkinsのホームディレクトリを変更するには、いくつかの方法があります。

Edit the JENKINS_HOME variable in your Jenkins configuration file (e.g. /etc/sysconfig/jenkins on Red Hat Linux).
Use your web container's admin tool to set the JENKINS_HOME environment variable.
Set the environment variable JENKINS_HOME before launching your web container, or before launching Jenkins directly from the WAR file.
Set the JENKINS_HOME Java system property when launching your web container, or when launching Jenkins directly from the WAR file.
Modify web.xml in jenkins.war (or its expanded image in your web container). This is not recommended. 

Jenkinsの実行中は、この値を変更できません。ここに表示されているのは、構成が有効になっていることを確認するためです。

0
Jorduino