第4回 TFVCとGitのデプロイ、ビルド、テスト:連載:TFVC vs Git(7/8 ページ)
今回はVisual Studio Onlineの新しいビルドシステムを使って、ソースコードをコミットしてからビルド/テスト/デプロイまでを自動的に行う方法を見る。連載完結。
組織内にビルドエージェントを用意する
Jenkinsではなく、組織内にVS Onlineのビルドエージェントを用意してビルドをスケールアウトするという方法もある。エージェントの追加はVS Onlineのテナントのトップページ(http://VS Onlineのアカウント名.visualstudio.com/)にある管理ページから可能だ。
VS Onlineのトップページで右上に表示される歯車アイコンをクリックすると管理ページが表示されるので[Agent pools]タブをクリックする。
[Agent pools]タブ
(1) 新しいビルドエージェントプールを作成する。
(2) Windows版のエージェントをダウンロードする。
(3) エージェントプールの管理者を指定する。
(4) エージェントプールのアカウントを指定する。
(5) 既定のエージェントプール。
(6) VS Onlineのエージェントプール。
この画面で[New pool]ボタンをクリックすると、ビルドエージェントプールの新規作成が始まる。
ビルドエージェントプールの新規作成
(1) 新しいビルドエージェントキューの名前を指定する。
(2) プロジェクトコレクション単位で自動的にプロビジョニングを有効にする。
(3) 確定してダイアログボックスを閉じる。
(4) 中止してダイアログボックスを閉じる。
[Name]には任意の重複しないビルドエージェントプールの名前を指定する。用途に応じて分かりやすい名前にすればよい。例えばMacやLinuxといった実行されているOS単位で動いているエージェント(Windows以外での実行方法は後述)単位で構成する、組織内で構成している場合は、部門単位でプールを作るという方法も考えられる。実際にWindows用のエージェントを作ってみよう。
エージェントプールの画面で[Download agent]ボタンをクリックすると、Windows用のエージェントを含んだagent.zipファイルがダウンロードできる。任意のフォルダーに展開に展開して、configureagent.ps1ファイルを実行する。
[コラム] configureagent.ps1ファイルの実行に必要なこと
configureagent.ps1ファイルを実行するためにはPowerShell 3.0以降が必要になる。Windows 8では4.0がインストールされているが、Windows 7およびWindows Server 2008 R2を使用している場合は以下のURLからインストールする必要がある。
ZIPファイルのブロックを解除してから適当なフォルダーに展開したら、管理者としてPowerShellを起動してから構成を開始する。
ここではc:\agentフォルダーに展開して、構成を開始した。これにより、コマンドプロンプト画面が起動して設定が行われる。
エージェントの設定
(1) エージェント名。何も指定しなければ「agent-コンピューター名」になる。
(2) 接続するVS OnlineのURL。
(3) エージェントプール名。既定は「default」エージェントプール。
(4) エージェントが使用する作業フォルダー。
(5) Windowsのサービスとして実行するかどうか。
(6) VS Onlineの認証が実行される(認証用のダイアログボックスが表示される)。
(7) サービスとして実行していない場合、[Ctrl]+[C]キーを押すと停止する。
気を付けるのはサービスとして実行するかどうかだ。サービスとして実行しない場合、明示的に実行する必要がある。一度終了後、再実行する場合、エージェントを展開したフォルダーのagentフォルダーの配下にvsoagent.exeファイルがあるので、そのまま実行すればよい(このとき、vsoagent.exeファイルがあるフォルダーにカレントディレクトリを移動せずに、agentフォルダーからサブディレクトリ名付きでvsoagent.exeファイルを実行する必要がある。例:「agent\VsoAgent.exe」)。設定情報を引き継いで、ビルドエージェントが実行される。
実行しているエージェントはVS Onlineの管理画面から確認できる。
実行されているビルドエージェントの確認
(1) エージェントを有効にするかどうか。
(2) エージェント名。
(3) エージェントを削除する。
(4) エージェントで使用可能な機能があるという判定条件を追加する。
(5) 変更を確定する。
(6) 変更を取り消す。
(7) 登録済み機能一覧。
これでエージェントを実行しているコンピューターがVS Onlineで認識されるようになった。ここではdefaultプールに追加したので、ビルドキュー投入時に「default」を選択すれば、自動的に追加したエージェントでビルドが実行される。
VS Onlineがビルドエージェントごとに決まっている機能(capability)に従って、自動的に適切なエージェントを使ってビルドするため、エージェント単位にプールを作るということは避け、可能な限り少ないエージェントプールにまとめよう。
XAMLビルドでは、タグ付けが新しいビルドシステムの「capability」と同じ役目を果たしていて、これによりどのビルドエージェントを使うかが決まったが、タグは管理者が設定する必要があり、スケールアウトも難しかった。新しいビルドシステムではタグを設定する必要がないため、スケールアウトが非常にやりやすくなっている。XAMLビルドにおけるエージェントの配置や構成については以下を参考にしてほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.