kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Team Services CI/CDアドベントカレンダー:Deployment Groupで仮想マシンへの展開を管理する(11日目)

はじめに

この記事はVisual Studio Team Servicesアドベントカレンダー12日目の記事です。

qiita.com

仮想マシンへの展開、どうやっているでしょうか?ReleaseやBuildのタスクでFQDNを指定してコピーもいいですが、VSTSには展開する仮想マシンのグループを管理するDeployment Groupsという機能があります。これを使うと、配布エージェントの管理をVSTS側でやってくれるので便利そうです。ちょっと使ってみましょう。

長くなりそうだったので、今日はDeployment Groupsの管理だけです。

Deployment Groups作成

f:id:kkamegawa:20171211061539p:plain

Build & Releaseの中にDeployment Groupsがあります。*がついているので、まだプレビューという扱いです。

f:id:kkamegawa:20171211061537p:plain

Add deployment groupをクリックして、作成します。

f:id:kkamegawa:20171211061538p:plain

名前は任意で決めてください。Descriptionにはわかりやすい説明をつけます。

対象とするOSはWindowsかLinuxです。とはいえ、Linuxで必要となることがあるかどうかはちょっと疑問です。Azureのコンテナーサービス使ったり、Web Apps使ったほうがいいように思います。

エージェントを展開するためのPowerShellスクリプトが用意されるので、Azureで展開する場合、仮想マシンのプロビジョニング時にこのままコピペすれば、使えます。ちなみにAzureのDevTestLabsでは初期設定時にこのエージェントを展開する機能が用意されています。

注意点として、同じエージェントを使いますが、ビルドエージェントではありません。つまり、ビルドとDeployment groupのエージェントを兼ねることはできません。これはUIテストでも同じことです。テストはテスト、ビルドはビルド、となります。マシンが多くなりますね。

f:id:kkamegawa:20171211061545p:plain

対象とする環境にはタグをつけることができます。タグは決まっていないので、任意に設定します。OSはDeployment groupsがそもそも異なるので、Windows 10であれば、1709とかの現在のバージョンやFirefox, Chromeが入っているかどうか、先行リリース環境であるかどうかなどを指定すればいいでしょう。

f:id:kkamegawa:20171211061540p:plain

こんな風に一覧で含まれるターゲットのPCが表示されます。

f:id:kkamegawa:20171211061542p:plain

オンライン、オフラインの状態もわかります。

エージェントの管理

f:id:kkamegawa:20171211061543p:plain

エージェントはしばしばバージョンアップされます。Deployment groups単位で更新ができます。Update agentを実行すると、自動的にグループ内のOSのエージェントが更新されます。

f:id:kkamegawa:20171211061544p:plain

更新してもいいかどうか確認されます。

f:id:kkamegawa:20171211061541p:plain

更新前、Agent.versionは2.124でした。

f:id:kkamegawa:20171211061545p:plain

更新後、Agent versionが2.126になりました。

まとめ

Deployment groupsを使ってテスト環境を管理するところを紹介しました。Release機能でこの管理しているグループに対するデプロイがサポートされているので、明日はその辺を紹介します。