読者です 読者をやめる 読者になる 読者になる

替え玉バリカタでお願いします

お仕事と、お仕事そうでお仕事じゃない、少しお仕事な備忘など。

.NETとGitとjenkinsでCI環境を構築する方法(1) - 事前準備

jenkins 開発プロセス改善

2013/10/29:更新
公開鍵・秘密鍵の格納場所を修正しました。
PuTTYでの鍵生成手順、環境変数の設定手順を追加しました。

1.コトの発端

CIするために、ずっとTeam Foundation Server 2010を使っていました。本当は色々と改善されて見た目もカッコよくなったTeam Foundation Server 2012に移行したかったのですが、確かな情報が少なく躊躇していました。

それと、複数の言語や開発環境からなる社内の現状を踏まえて、このままTeam Foundation Serverを使い続けることに疑問を感じ、jenkinsを使うことにしました。

ついでにVSSでもTFSでもSubversionでなくGitを使いたいとずっと思っていました。よくある話で、お客様先別のバージョンが発生したり何なりで、Git以外では少々厳しくなってきています。また、現在は主にタスクや課題管理にヌーラボさんBacklogを使っていることもあり、ソースとタスクの連携もしたかったのです。ブランチ切ったりね。

そこでテスト環境を構築しようと色々いじってみると、そこそこハマったのでメモを残しておきたいと思います。

2.前提

  • VisualStudioはインストール済み
  • Gitを使います
  • リポジトリはBacklogを利用する
    ※Git用のユーザを作っておくと良いかもしれません(今回はtestuser1)

3.Gitのインストール

Git Extentionsを使います。今回はVersion 2.46を使用しました。

gitextensions:https://code.google.com/p/gitextensions/

参考に指定した選択肢はこんな感じ。 

  1. Installation Scope
    f:id:mtaniuchi:20131028174413p:plain
  2. Required Software
    f:id:mtaniuchi:20131028174414p:plain
  3. Destination Folder
    f:id:mtaniuchi:20131028174415p:plain
  4. Custom Setup
    f:id:mtaniuchi:20131028174416p:plain
  5. Select SSH Client
    f:id:mtaniuchi:20131028174417p:plain
  6. 裏でKDiff3とGitのインストーラーが走ります。デフォルト選択肢でNextし続けます。
  7. Finish!!

    f:id:mtaniuchi:20131028174418p:plain

 環境変数の設定

3つの環境変数をシステム環境変数に追加しておきます([スタート]->[コンピュータ]のプロパティ->[システムの詳細設定]->[環境変数])。

  • GIT_HOME=C:\Program Files (x86)\Git
  • HOME=C:\SSHKeys
  • Pathに右記を追加 C:\Program Files (x86)\GitExtensions\PuTTY

4.git configを軽く設定

jenkinsにも設定する情報です。

$git config --global user.name "testuser1"
$git config --global user.email "testuser1@example.com"

5.SSHの設定・鍵生成(jenkins用)

jenkinsではSSHを使ってソースを取得するため、公開鍵と秘密鍵のセットを作ります。上記のようにGit ExtentionsをインストールしたときにPuTTY(plink.exe)を選択しておけば、PuTTYがインストールされています。

鍵を作る

鍵は上記で作ったC:\SSHKeys\.sshに置きます。C:\SSHKeysではありません。Windowsの[スタート]ボタンから[Git]->[Git Bash]を選択して、プロンプトを表示させます。プロンプトで公開鍵・秘密鍵のペアを作ります。鍵の出力先に注意してください。

$ssh-keygen -t rsa -C "testuser1@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): /c/SSHKeys/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/SSHKeys/.ssh/id_rsa.
Your public key has been saved in /c/SSHKeys/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX testuser1@example.com

Backlogに公開鍵を登録

Backlogにログインして、[個人設定]->[SSH公開鍵の登録]へ移動します。id_rsa.pubの内容をそのままコピペして登録します。GithubやBitbucketなどを使ったことがあれば分かる、アレです。

リポジトリがあるリモートサイトをknown_hostに追加する

Gitのリモートサイトをknown_hostに入れます。これがないとリモートからソースを取得できません。

下記の例はAdministratorでログオンしている状態で、Git Bashから実行しています。そのため、下記を実施するとC:\Users\[UserName]\.ssh\known_hostというファイルができます。こいつをC:\SSHKeys\.ssh\known_hostにコピーしておきます。

$ssh -T spacename@spacename.git.backlog.jp
The authenticity of host 'spacename@spacename.git.backlog.jp (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'spacename@spacename.git.backlog.jp,xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
Permission denied (publickey).

'Permission denied'とか言われてますが、一旦無視します。

6.SSHの設定・鍵生成(Git Extentions用)

Git Extentionは認証をPuTTY経由で行うため、.ppkファイルを使います。したがって、PuTTYで鍵を生成します。

Git ExtentionsをインストールしたフォルダにPuTTYフォルダがあるはずです(例:C:\Program Files (x86)\GitExtentions\PuTTY)。PuTTYフォルダにあるputtygen.exeをダブルクリックで起動します。

  1. マウスでグリグリして…

    f:id:mtaniuchi:20131029194635p:plain

  2. 秘密鍵と公開鍵をC:\SSHKeys配下に格納します。
    パスフレーズは入れないのが吉です。

    f:id:mtaniuchi:20131029194822p:plain

7.jenkinsのインストール

やっとjenkinsのインストールです。公式サイトからjenkinsをダウンロードします。インストールはWindows Nativeをダウンロード。zipファイルを解凍して、msiでインストールします。

Welcome to Jenkins CI! | Jenkins CI:http://jenkins-ci.org

  1.  特に考えることもなく…
    f:id:mtaniuchi:20131029101629p:plain
  2. すぐにインストールし終わりますf:id:mtaniuchi:20131029101847p:plain
  3. インストールが終わると、ブラウザが立ち上がります。f:id:mtaniuchi:20131029101945p:plain

インストール完了!

次回

次回はjenkinsの設定を書き残します。

関連記事

広告を非表示にする