JenkinsスレーブとしてMacを追加

まだまだ、使いこなせていませんがJenkinsは非常に便利ですね。
豊富なプラグインや、皆様のknowledgeを見れば、大抵の事は実現できます。
今後もお世話になりそうです。

Macをスレーブとして追加

既に、Window7マシンをスレーブとして追加済みですが、今回は新たにMacをスレーブとして追加することになりました。
という訳で、そのセットアップ手順をここに残しておきます。

Jenkinsマスターでノードを追加

Jenkinsマスターにおいて、「Jenkinsの管理」->「ノードの管理」->「新規ノード作成」とクリックします。
fig01
fig15
ノード名を入力し、”ダムスレーブ”をチェック後、[OK]をクリック
fig03
リモートFSルートにMacマシンでのJenkinsのワークディレクトリーのPathを設定して、[保存]をクリックします。(適当入力し、後からMac側でパスが決定してから変更すれば良い)
fig14
無事にノードが追加されました。
fig05
まだMac側でのSlave設定が完了していないので、接続に失敗します。

Mac側での設定

Mac側では、下記の作業を実施する。

  • jenkinsユーザーを追加
  • slave.jarをダウンロードして、適当な場所に設置
  • Launchdに登録

jenkinsユーザー作成

jenkinsユーザーを作成すると、”/Users/jenkins”というディレクトリーできる。私は、その配下に”slave”というディレクトリーを新たに作成し、これをリモートFSルートにすることにしました。ここら辺は、各自で自由にしてよいところだと思います。

slave.jarをダウンロード

Macのブラウザにて、Jenkinsマスターサーバーへアクセスして、「Jenkinsの管理」->「ノードの管理」->とクリックする。ノード一覧が表示されているので、先ほど追加したMac用のノードをクリックする。
fig06
ページに表示されている”slave.jar”リンクから、slave.jarをダウンロードし、これを”/Users/jenkins/slave/”以下に配置する。そして、jnlpUrlやsecretは、あとでlaunchctl登録のplist内へ記述するのでメモっておく。

Launchdに登録

Mac起動時に自動的にslave.jarを実行させる為には、下記のようなplistと呼ばれる設定ファイル(?)を作成して、Launchdに登録しなければならない。(すいません。Mac、よく理解してません。。。)

/Library/LaunchDeamons/mac.slave.plist

<!--?xml version="1.0" encoding="UTF-8"?-->

        UserName
        jenkins
        Label
        [ラベル名]
        ProgramArguments

                /usr/bin/java
                -jar
                /Users/jenkins/slave/slave.jar
                -jnlpUrl
                [jnlpUrl]
                -secret
                [secret]
                -noCertificateCheck

        KeepAlive

        RunAtLoad

[jnlpUrl]や[secret]は先ほどメモっておいたものを記述。また、jenkinsマスターサーバーをhttps化しているような方は、”-noCertificateCheck”を追加して証明書のチェックを無効化する必要がある。

出来上がったplistファイルを下記コマンドで登録する。

 launchctl load /Library/LaunchDeamons/mac.slave.plist

Macを再起動後、Jenkinsのノード一覧を表示してみると、無事に接続されていた。
fig08

・・・「空きスワップ容量」が0Bなのは、後で調べてみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>