Windows Virtual Desktopでマスターイメージを管理する

こんにちは、パーソルプロセス&テクノロジーの内田です。

WVDの環境を構築する上でマスターイメージを作成する機会があると思います。Azure Marketplaceにて公開されているOSイメージからデプロイしてもよいのですが、1台1台に日本語設定や固有のアプリケーションをインストールする作業はとてつもなく大変です。
そんな時にマスターイメージを作成しておけば、初回のセットアップ作業をぐんと減らすことが可能となります。

以下の公式ドキュメントにて、マスターイメージ作成の手順は記載されているのですが、このマスターイメージの更新はどうすればいいのか?
といった疑問をよくお聞きしております。

マスター VHD イメージを準備してカスタマイズする

https://docs.microsoft.com/ja-jp/azure/virtual-desktop/set-up-customize-master-image

というわけで今回は、Azure Shared Image Gallery (以下、SIG)というリソースを使って、マスターイメージのバージョン管理を行う方法について説明していきたいと思います。

SIGの概要について

SIGの全体像は以下の図に示す通りとなっております。

共有イメージ ギャラリーの概要より

文章でも簡単に補足いたしますと、SIGは大きく3つの階層構造からできております。上から、「Shared Image Gallery(共有イメージギャラリー)」、「Image definition(イメージ定義)」、「Image version(イメージ バージョン)」です。

リソース説明
Shared Image Galleryイメージを管理・共有するためのリポジトリ
Image definitionShared Image Gallery 内で定義され、イメージと要件に関する情報を記載する
Image versionImgae definition 内で定義され、イメージ リソースの格納に利用する

イメージの種類(例:開発者用、営業用等)毎にイメージ定義を作成して、実際のイメージをイメージバージョンに格納。そしてイメージを更新したら、それをイメージ バージョンに追加する。といった流れとなります。

構築手順

それでは実際に、SIGを構築していきたいと思います。

1. Shared Image Galleryを追加する。

リソース作成から「Shared Image Gallery」を検索して、作成していきます。

[基本]タブ

2. 新しいイメージ定義を追加する。

SGIが作成できたら、そのリソースに移動してImage definitionを作成していきます。

概要
[基本]タブ
[バージョン]タブ
[発行のオプション]タブ



[基本]タブの「オペレーティングシステムの状態:一般化、特殊化」や「発行元」「プラン」「SKU」という項目がわかりづらいかと思うので、補足していきます。
イメージ定義には一般化と特殊化という2種類があり、これらはソースとなるイメージのリソースの種類によって分類されます。

種類説明
一般化Sysprepした仮想マシンから作成したイメージ リソース
特殊化管理ディスクから作成したスナップショット リソース

マシンの固有情報が残っては意味がないので、ここは「一般化」を選択しましょう。
続いて発行元、プラン、SKUですがこれはSIG内で一意である必要があり、現在Portalには実装されていませんが、イメージ定義の検索に利用するようなものとなります。

項目説明記入例
発行元会社名や部署名等CloudSteady
プランOSイメージ等windows10
SKU管理単位等win10_multi_eigyou

必須入力の項目ですが、2020年2月時点で、具体的に何を記載すればよいのかの情報はありませんでした。とりあえず、被らないよう名前付け規則を作成しておくことをお勧めします。
バージョンは後から作成できるので、[バージョン]タブは飛ばしてもらって大丈夫です。
[発行のオプション]は一部後から変更できないので(Powershellなら可能かも?)、この時点で入力しておきましょう。

3. 新しいイメージバージョンを追加する。

Image definitionが作成できたら、そのリソースに移動してImage versionを作成していきます。

[基本]タブ

「名前(バージョン番号)」は数字とピリオドで構成する必要があります。(例:1.0.0, 1.5.13)そして「ソース イメージ」にてソースとなるイメージ リソースを選択しましょう。

以上がSIGの構築の流れとなります。

マスターイメージ更新時の作業について

それではイメージを更新する作業の流れについて説明します。
1. 最新のImage versionより仮想マシンの作成
2. 仮想マシンに接続して、更新作業を実施
3. Sysprepを実行して仮想マシンを一般化
4. Portalの仮想マシン画面より「キャプチャ」を実行
※キャプチャを実行することでイメージ リソースがそのVMのイメージリソースが作成されます。
5. イメージ リソースを元にImage versionを作成
6. 1及び4で作成した仮想マシン関連のリソースとイメージ リソースを削除

最後に

上記で触れていなかったことも含めて、SIGのポイントについてまとめてみました。

  • 古いImage versionからも仮想マシンをデプロイできる。
  • Image versionは内部で複製することができる。(一度に多くの仮想マシンを作成する場合、レプリカを作成しておくことで、イメージ読込のオーバーヘッドによるデプロイ効率を解消できる。)
  • イメージのソースには、仮想マシン リソースから作成する「イメージ」リソースと、管理ディスクから作成する「スナップショット」リソースの2種類がある。(マスターイメージはSysprepする必要があるので、イメージがソースとなる。)
  • イメージ更新時に作成したリソースは、イメージ バージョンへの反映が完了次第削除する。(無駄な課金が発生してしまうため)

尚、鋭い方はお気づきかと思いますが、SIGを利用しなくともイメージ リソースのリソース名でもある程度バージョン管理はできるかと思います。
ただその場合、SIGと違って論理的に管理することができないので、長く管理する場合には管理者の負担が増加してしまうと考えています。

一定規模以上のWVD環境を構築・運用していくうえでマスター管理は重要な運用項目の一つです。この記事が、SIGを利用した運用業務の負担軽減の一助になれば幸いです。

いいね (この記事が参考になった人の数:2)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。