Jenkins の Slave マシンはとても簡単に作れるのでメモ

なんでもかんでも Jenkins を利用してビルドしているようになると、ジョブ数が爆発して Jenkins を動かしているサーバのスペックに不満が出てくるようになると思いますが、 Jenkins の Slave 機能が思った以上に便利だったのでメモをしておきます。

Jenkins の Slave 機能を調べると、まず SSH と JNLP という二つの方法が出てくるのですが、意外と違いを説明している人を見掛けなかったので書いておきます。

まず最初に書いておきますが、どちらの場合も Slave マシンに Jenkins を手動でインストールする必要は ありません

SSH を使う

Jenkins のノードの追加から SSH を選択すると、ホストやユーザ名、パスワード、秘密鍵なんかが設定できるようになります。
設定して Slave の起動を行なうと、 SSH 経由で Jenkins Slave としてのプログラムがインストールされ、操作できるようになります。

この SSH 機能を使って Slave を作る場合は、 Slave マシンが以下の条件を満たしている必要があります。

JNLP を使う

JNLP とは Java Web Start を行なうための定義ファイルのことです。

Jenkins のノードの追加から JNLP を選択すると、 JNLP ファイルをダウンロード出来るリンクが出てきます。このファイルをダウンロードし、実行すると Slave マシンとしての機能をそのマシンにインストールすることが出来ます。

また、 SSH 方式とは違い以下のことが可能になります。

まとめ

まとめると、 Slave 方式の選択方法としては以下のようになるかと思います。

JNLP を使うと手元のノート PC も Jenkins の Slave として参加することが出来るので用意に Slave マシンを増やすことが出来、大変に有用だと思います。