Team Foundation Server 2015を立ててみました
TortoiseGitを入れてコンソールでのGitの操作から解放され、今までのTortoiseSVNとあまり変わらない快適なリポジトリライフが始まりましたが、 VisualStudioからプルリク送ってソースのコメントを共有するという目標のため、Team Foundation Serverを立ててみました。
ライセンスの確認
マクロソフトの製品はとにかくライセンスがややこしいです。
Download Visual StudioとMSDNのライセンス ホワイトペーパー from Official Microsoft Download Center
ここからホワイトペーパーをダウンロードして、しっかり調査します。
- リテールのTFSなら 5ユーザまでのCAL付
- Expressなら 5ユーザまで無料
- リテールならSQL Server 2014 Standardを1個インストールしていい。ExpressはSQL ServerもExpress版になる。
- どちらの場合もWindows Serverで動かすのならCALは別途必要
で、私の場合はVisual Studio Enterprise With MSDNのサブスクライバですので
- サブスクライバは TFS2015をダウンロードして、インスタンスを1つは配置可。
- 開発、テスト等を目的とする場合、サブスクリプションで提供される製品への接続が自由 (CAL免除みたいなもの)
- 同じ組織内のVSサブスクライバにはTFS CALが付与される。
- Visual Studio Team Service アカウントも無制限で登録可。
なんて感じで、今回TFSを利用する人間はみんなVisual Studio MSDNサブスクライバですし、 堂々とTFS2015で立てることにしました。
Windows Server 2012 R2 準備
2015 TP5 でも良かったのですが、正式版が出た時に入れ替えるのも面倒なので 2012 R2にします。 クリーンインストール後に200個のWindows Updateを行った状態の綺麗なHyper-VのVMイメージを テンプレートにして、新しい2012 R2のVMを作成。マシン名やIPアドレスを変更して、さらに8個ほどWindows Updateを当てて準備完了です。
SQL Server 2014 インストール
まずは SQL Server 2014 Standard Edition を入れます。
- SQL Server 2014 Standard Edition with Service Pack 1 (x64) - DVD (Japanese) をダウンロード
- isoファイルをマウントしてsetup.exeを起動
- SQL Server インストールセンターで新規スタンドアロンインストールをクリック
- 画面に従って進んでいき、セットアップロールで 「SQL Server 機能のインストール」を選択し次へ
- 機能の選択で以下をチェック
データベースエンジンサービス SQL Server レプリケーション (レプリケートする予定はないのですが、将来に備えていれときます) 検索のためのフルテキスト抽出とセマンティック抽出 クライアントツール接続 Integration Services (他のデータストアとやりとりしないから要らないんですが、一応入れときます) 管理ツール - 基本 管理ツール - 完全 (Management Studioのために必須ですね)
- .NET Framework 3.5 が無いと怒られたので、サーバーマネージャの機能と役割の追加から追加してやります。(HTTPアクティベートとか選ぶとIISまで付いてきてうざいので、Frameworkだけ)
- 機能ルール画面で再実行してやるとインスタンスの構成画面になります。どうせ専用サーバーですし、デフォルトのままで次へ (VM&MSDNの良いところですね)
- サーバーの構成はデフォルト、SQL Server エージェントとか使う予定も無いので手動のままで。
- データベースエンジンの構成。 認証モードですが、管理者権限を持ったWindowsアカウントの他に、システム管理者(sa)アカウント & パスワードで入れるように 混合モードにしとくと便利です
- やっと準備が完了、インストールボタンでインストール開始です
- インストールが終わったら早速接続。スタート画面で SSMS(SQL Server Management Studio)のアイコンをクリック
- セットアップ時に設定したWindowsアカウントか、saアカウントでSQL Serverに接続できればOKです
Team Foundation Server 2015 インストール
続いて 本命のTFS2015を入れます。
- Team Foundation Server 2015 Update 2.1 (x86 and x64) - DVD (Japanese) をダウンロード & プロダクトキーを取得
- isoファイルをマウントし、 tfs_server.exeを起動
- しばらくVisual Studioロゴにみとれていると、インストール画面が開きます
- インストール先を聞かれますが、専用サーバーなのでデフォルトでいきます
- インストールが終わったら、構成センターが開始されます。SharePointとか使う予定もないので基本サーバーを選んでウィザード開始です
- SQL Server インスタンスは"既存のSQL Server インスタンスを使用する"を選び、データベースの画面のテストでOKになることを確認します
- ビルドと配置エージェントは使わないので飛ばします
- 設定の確認画面で間違いがなければ次へ。適合性チェックがOKなら構成ボタンをクリック
- 処理が終わるのをじっと待ちます
- http://localhost:8080/tfs をieで叩き、「Team Foundation Server の概要」ページが表示されれば成功
- TFS管理コンソールを開いて設定を確認。ポートやサイト名といったURLを変更する場合は、ここからやるみたいです。(SSLは IIS側で設定しないといけないような気もしますが、社外からはVPN接続でしか入らないのでhttpのままでOKとしておきます)
で、どうすればいいの?
インストールはしてみたものの、Team Foundation Serverってどういうものなのか何をどうすれば良いのかがさっぱりわからないので困りましたが、
連載:いまどきのソース・コード管理:第1回 TFS Expressで始めるソース・コード管理 (1/3) - @IT
このあたりで研究を開始。
チームプロジェクトコレクション作成
TFS2015にはチームプロジェクトをグループ化するためのコレクションがあるようですので、 Defaultのコレクションではなく、新規で専用に作ってみることにしました。
Team Foundation Server 管理コンソールを起動して "コレクションの作成"で名前や説明を入力するだけ。 SQL Serverに新しいスキーマが作られます(要するに複数のTFSが立てられるのと一緒ですねこれ)
Visual Studioから接続
接続できるのかそろそろ心配になってきましたので、VisualStudioから接続してみます。
- VS2015を起動して、メニューのチームをクリック。
- Visual Studio Team Servicesの接続をクリック
- "サーバー(R)"をクリックして、TFSのURLを入力。
- ID/パスワードを入力してOK
- Team Foundation Server の選択で、入力したサーバーを選ぶとチームプロジェクトコレクションが表示される
- 新しく作った方のコレクションを選んで"接続"をクリック
- うまく接続できたみたいなので、ワークスペースのマッピングもしておきます。(よくわからないけど、TFSのプロジェクトのデータを置くところ?)
チームプロジェクトを作成
- VisualStudioのメニューからチームを選んでTFSに接続し、プロジェクトと担当チームメニューから新しいチームプロジェクトクリック
- ソース管理にGitにするのだけ忘れなければ、あとは適当で大丈夫
ユーザー追加
TFSの様々な権限は、TFSの管理画面でTFSグループにWindowsのアカウントを設定して行うことになるため、結局のところ、TFSを使うメンバー分のWindowsアカウントが必要になるようです。
とりあえず、メンバー分のWindowsユーザーを作り、TFSの管理画面でTFS_MyPrj_Developers なTFSグループを作成し、 チームプロジェクトはそのTFSグループを登録するというまどろっこしい方法を取ってみました。
ActiveDirectory環境ならTFSを入れたマシンにいちいちアカウントなんて作らなくても良いですし、 Windows Server 2016ならMicrosoftPassportのアカウントも使えて楽になるんでしょうね。
チームプロジェクトにユーザを追加
さて、ユーザもできたことですし、チームプロジェクトにユーザを登録していきます。
- VisualStudioに戻って、チームエクスプローラーから チームプロジェクトのURLをクリック
- 画面のチームメンバってなってるところで、上で作ったTFSグループを放り込んでおしまい
Gitリポジトリのプッシュ
今回はローカルに Gitのリポジトリがありますので、それをoriginとして TFSにpushします。
- チームプロジェクトのURLでコードのタブをクリックすると、リポジトリのURLが記載されているので、それを.git/configに設定してpush
- 今回 backlog側もsubのremoteリポジトリとして置いておくことにしたのでそっちは "origin"から"backlog"に変更
これでめでたくTFSでの開発体制が整いました。
すごく面倒くさくて、本当にこれが便利かどうかはまだわかりません。
もうちょっと使いこなせるようになってから、改めて使用感を報告します・・・
正直疲れました・・・