この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
こんにちは、パーソルプロセス&テクノロジーの内田です。
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 definition | Shared Image Gallery 内で定義され、イメージと要件に関する情報を記載する |
Image version | Imgae 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を利用した運用業務の負担軽減の一助になれば幸いです。