LoginSignup
39
38

More 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)
    • ubuntu 12.04 LTS
  • Jenkins (slave)
    • Windows7 (ubuntu内にたてたVM)
  • Gitサーバ
    • Bitbucket
  • Ruby
    • Ruby 2.0.0-p481
  • JRE
    • Version 7 Update 65

Jenkinsの設定

Windowsのコマンドプロンプトのパスを指定 (※1)

  1. ブラウザで jenkinsの管理 > システムの設定 を開く
  2. シェル実行ファイル に以下を追加
    • C:\WINDOWS\system32\cmd.exe

ノードの追加

  1. ブラウザで Jenkinsの管理 > ノードの管理 > 新規ノード作成 にアクセスする
  2. 以下のように設定する
    • リモートFSルート:C:\jenkins
    • 起動方法:JNLP経由でスレーブを起動
    • その他:(プロジェクトに適した内容)

JNLP用のポートを解放 (※ここのみ、後日CentOS6.5でJenkins環境構築した際に必要になった工程)

  1. ブラウザで `Jenkinsの管理 > グローバルセキュリティの設定 にアクセスする
  2. 以下のように設定する
    • JNLPスレーブ用TCPポート番号:固定 (9000)
  3. Linux で /etc/sysconfig/iptables に 以下を追記する
    • -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
  4. 以下コマンドを実行する
    • service iptables restart

Windows(slave)のセットアップ

Ruby 実行環境を用意

Ruby インストール (※2)

  1. http://rubyinstaller.org/ からインストーラをDLして実行する
  2. システム環境変数PATHに以下を追加する
    • Path=(Ruby.exeが存在するパス)

bundler インストール (※3)

  1. 以下コマンドを実行する
    • gem install bundler

Jenkins 用ディレクトリを作成

  1. Jenkinsのノード設定で リモートFSルート に指定したディレクトリを作成する (今回は C:\jenkins を作成)

Java実行環境を用意

JREインストール

  1. https://java.com/ja/download/ から DL してインストール

JVM実行時の文字コードを UTF-8 にする (※4)

  1. システム環境変数に以下を追加する
    • JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

Bitbucket 接続環境を用意

Git for Windows インストール

  1. http://msysgit.github.io/ から DL してインストール

SSH鍵を作成 (※5)

  1. SSH鍵保存先として以下ディレクトリを作成
    • C:\SSHKeys
  2. システム環境変数に以下を追加
    • HOME=C:\SSHKeys
  3. Git Bash で以下コマンドを実行する (パスフレーズは何も入力せずEnter押下する)
    • ssh-keygen

Bitbucket に SSH でアクセスできるようにする

  1. ブラウザを起動して Bitbucket のリポジトリページにアクセスし、設定 > デプロイ鍵 を開く
  2. 鍵を追加 ボタン押下で追加ダイアログを開き、以下ファイルの内容をペーストする
    • C:\SSHKeys\.ssh\id_rsa.pub
  3. Git Bash で以下コマンドを実行し、yes と答える (これにより、Bitbucket が known_hosts に追加される)
    • ssh git@bitbucket.org

Jenkinsサービス のインストール

Slave用Jenkinsサービス のインストール

  1. ブラウザで Jenkins の管理 > ノードの管理 > (Slave ノードの詳細画面) を開く(以下のようなURL)
    • http://[jenkinsホスト]/computer/[自分のノード名]/
  2. Launch ボタン押下する
  3. slave-agent.julp がDLされるので、実行する
  4. 下記ウィンドウが開くので、File > install as a service を実行する installer.png

注釈

  • (※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 にアクセスできるようになった。 理由はわからない。

参考サイト

39
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
38