infoMore than 5 years have passed since last update.
Windows を Jenkins の Slave にして Git管理してる Rspec のテストを実行するためのセットアップ手順
Last updated at Posted at 2014-07-18
やりたいこと
- Windows マシンを Jenins の Slave にして、Bitbucket から最新のテストコード(Rspec) を取得して実行する
前提
- Jenkins masterはセットアップ済 (なのでjenkins自体のセットアップ手順は省略)
- Windows の Jenkins Slave はサービスとして実行する(実行ユーザは Local System)
環境
- Jenkins (master)
- Jenkins (slave)
- Gitサーバ
- Ruby
- JRE
Jenkinsの設定
Windowsのコマンドプロンプトのパスを指定 (※1)
- ブラウザで
jenkinsの管理 > システムの設定
を開く
-
シェル実行ファイル
に以下を追加
C:\WINDOWS\system32\cmd.exe
ノードの追加
- ブラウザで
Jenkinsの管理 > ノードの管理 > 新規ノード作成
にアクセスする
- 以下のように設定する
- リモートFSルート:
C:\jenkins
- 起動方法:
JNLP経由でスレーブを起動
- その他:(プロジェクトに適した内容)
JNLP用のポートを解放 (※ここのみ、後日CentOS6.5でJenkins環境構築した際に必要になった工程)
- ブラウザで `Jenkinsの管理 > グローバルセキュリティの設定 にアクセスする
- 以下のように設定する
- JNLPスレーブ用TCPポート番号:固定 (9000)
- Linux で
/etc/sysconfig/iptables
に 以下を追記する
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
- 以下コマンドを実行する
Windows(slave)のセットアップ
Ruby 実行環境を用意
Ruby インストール (※2)
-
http://rubyinstaller.org/ からインストーラをDLして実行する
- システム環境変数PATHに以下を追加する
bundler インストール (※3)
- 以下コマンドを実行する
Jenkins 用ディレクトリを作成
- Jenkinsのノード設定で
リモートFSルート
に指定したディレクトリを作成する (今回は C:\jenkins
を作成)
Java実行環境を用意
JREインストール
-
https://java.com/ja/download/ から DL してインストール
JVM実行時の文字コードを UTF-8 にする (※4)
- システム環境変数に以下を追加する
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
Bitbucket 接続環境を用意
Git for Windows インストール
-
http://msysgit.github.io/ から DL してインストール
SSH鍵を作成 (※5)
- SSH鍵保存先として以下ディレクトリを作成
- システム環境変数に以下を追加
- Git Bash で以下コマンドを実行する (パスフレーズは何も入力せずEnter押下する)
Bitbucket に SSH でアクセスできるようにする
- ブラウザを起動して Bitbucket のリポジトリページにアクセスし、
設定 > デプロイ鍵
を開く
-
鍵を追加
ボタン押下で追加ダイアログを開き、以下ファイルの内容をペーストする
C:\SSHKeys\.ssh\id_rsa.pub
- Git Bash で以下コマンドを実行し、yes と答える (これにより、Bitbucket が
known_hosts
に追加される)
Jenkinsサービス のインストール
Slave用Jenkinsサービス のインストール
- ブラウザで
Jenkins の管理 > ノードの管理 > (Slave ノードの詳細画面)
を開く(以下のようなURL)
http://[jenkinsホスト]/computer/[自分のノード名]/
-
Launch
ボタン押下する
-
slave-agent.julp
がDLされるので、実行する
- 下記ウィンドウが開くので、
File > install as a service
を実行する
注釈
- (※1)
- これを設定しないと Jenkinsジョブ内のビルド手順で
Windowsバッチコマンド
を実行できない
- (※2)
- Rubyインストーラのオプションで追加される環境変数は、システム環境変数ではなくユーザ環境変数なので注意!
(Jenkins Slave サービスの実行ユーザは Local System なので、セットアップ中に Rubyインストーラを実行したユーザの ユーザ環境変数は参照しない)
- (※3)
- 実際のテスト実行に必要な gem はプロジェクト毎に別途
bundle install --path vendor/bundler
でインストールするので、ここでは Bundler のみインストールする
- (※4)
- 文字コードを UTF-8 に変更しないと、Jenkins のビルド結果閲覧時に Console Output と Gitコミットログの日本語が文字化けする
- (※5)
- 当初、SSH鍵を PuTTy日本語版に付属していた puttygen.exe で作成したが、それだと Bitbucket にアクセスできなかった (エラー内容:
Permission denied (publickey)
)。
Git Bash でSSH鍵を作成し直したところ、Butbucket にアクセスできるようになった。
理由はわからない。
参考サイト
- SSH問題のトラブルシューティング
- Step by step guide to set up master and slave machines - 日本語 - Jenkins Wiki
List of users who liked
39Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up