Windows の Jenkins で JENKINS_HOME を別のフォルダーに変更する方法
Jenkins を Windows 環境に MSI ファイルで導入すると、デフォルトでは C:\Program Files (x86)
にインストールされる (64 ビットの場合)。
Java の実行環境を同梱してくれていたり、自動でサービスに登録してくれたりして嬉しいのだけど、気になるのが JENKINS_HOME
が C:\Program Files (x86)\Jenkins
になってしまう点。ジョブやワークスペース、プラグインなどのデータなどが Program Files
の下に置かれてしまう。Windows 的な作法では「アプリケーションのデータは ProgramData
や AppData
に置きましょう」となっているので少し気持ち悪い。
JENKINS_HOME
を変更するには環境変数を設定したらいけそうなんだけど、MSI から導入した場合は環境変数ではなく jenkins.xml
の値が優先されるようだ (jar から直接実行する場合は未確認)。
ということで、「MSI から導入した Jenkins で JENKINS_HOME
を変更する手順」をまとめておく。Jenkins のバージョンは 1.550。
ここでは、JENKINS_HOME
を C:\ProgramData\Jenkins
に変更するものとする。
- Jenkins サービスをとめる。
インストール フォルダーの
jenkins.xml
を開いて<env name="JENKINS_HOME" value="%BASE%"/>
を次のように書き換える (改行コードが LF なので、メモ帳ではできなくはないが探すのが少し大変)。
<env name="JENKINS_HOME" value="%ProgramData%\Jenkins"/>
インストール フォルダーの次のファイル・フォルダー以外を
%ProgramData%\Jenkins
に移動する (コピーだと、jobs
内にシンボリックリンクがあった場合に壊れてしまうので、必ず「移動」すること)。jre
フォルダーjenkins.err.log
jenkins.exe
jenkins.exe.config
jenkins.out.log
jenkins.war
jenkins.war.bak
jenkins.war.tmp
jenkins.wrapper.log
jenkins.xml
Jenkins サービスを開始する。
http://localhost:8080/systemInfo
からJEKNINS_HOME
が設定した値になっていることを確認する。ジョブやプラグインなどの情報が引き継がれているかどうかも合わせて確認する。
とっても簡単ですね。インストーラーで設定できるようになっていると、より嬉しいので、気が向いたら pull request してみよう・・・。