OS X El CapitanにJenkinsをインストール(3)

前回の続きです。ここまでにJenkinsのインストールが済んだものの、大量の警告やエラーログが出力されていて使い物にならない状態になっていたのを、DNSマルチキャストを切って問題回避しました。

swiftlife.hatenablog.jp

今回は、ログインと同時にJenkinsを起動するよう設定します。

ログイン時からJenkinsを起動するためには、まず/usr/local/opt/jenkins下のplistファイルを~/Library/LaunchAgentsに置き、その上でlaunchctlコマンドを使ってロードします(…と、JenkinsをインストールしたときのHomebrewのログに書かれていました)。

(Jenkinsインストール時のログ再掲)
Note: When using launchctl the port will be 8080.

To have launchd start jenkins at login:
  ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
Then to load jenkins now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

ログでは/usr/local/opt/jenkins下のファイルへシンボリックリンクを張っていますが、これではhomebrewでアップデートするたびに設定内容が書き換えられてしまいます。ですので、設定ファイルを~/Library/LaunchAgentsフォルダにコピーしておき、それを使うようにします。

% cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents/.

plistには、前回のDNSマルチキャストを切るよう忘れずに設定しておきます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/java</string>
      <string>-Dhudson.DNSMultiCast.disabled=true</string>
      <string>-Dmail.smtp.starttls.enable=true</string>  ← この1行を追加
      <string>-jar</string>
      <string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
      <string>--httpListenAddress=127.0.0.1</string>
      <string>--httpPort=8080</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

そして、launchctlコマンドでロードします。

% launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

これで、再ログイン後も http://127.0.0.1:8080 でアクセスできるはずです。実際に再起動して、動くことを確認しました。

% ps ax | grep java
  508   ??  S      0:36.68 /usr/bin/java -Dhudson.DNSMultiCast.disabled=true -Dmail.smtp.starttls.enable=true -jar /usr/local/opt/jenkins/libexec/jenkins.war --httpListenAddress=127.0.0.1 --httpPort=8080

アドレスやポートの設定などが残っていますが、インストールはひとまずここまで。

補足:自動起動を解除する

自動起動を設定した時と同じように、ターミナルでlaunchctlコマンドを「unload」オプションと一緒に使用します。

% launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist