Virtual Machine Servicing Tool 3.0

ある日の出来事。
私「最近、玄関のカギ穴にカギが通りにくいんだよなあ」
私の友人「だったら、551を吹きかければ?」

551?あの金属のサビをなんとかしちゃう556じゃなくて??
その一言は、私にブタまんの肉汁を吹きかけろ、という斬新な一言に聞こえました。

このように、ちょっとしか言葉が違わないのに、
おもいっきり違う意味になってしまうときってありますよね。
それは今回登場する、Virtual Machine Servicing Toolにも当てはまると思います。
Virtual Machine Servicing Toolは、通称VMSTと略されており、
一見すると、VSMT(Virtual Server Migration Tool)と間違えてしまいます。
私も初めてこの文字を目にしたとき、VMSTとVSMTを見間違えてしまい、
とんでもなく間違った解釈をしていた苦い思い出があります。

それはさておき、VMSTですが、
新しいバージョンである、3.0がリリースされようとしています。
VSMT3.0ではライブラリ内の仮想マシンのみならず、
さまざまな場所にある仮想マシン/物理ホストを更新プログラムの適用対象にするようです。

■What’s new in the Virtual Machine Servicing Tool 3.0?(ベータプログラムのダウンロード先もあり)
https://connect.microsoft.com/content/content.aspx?ContentID=17017&SiteID=14

VMSTのドキュメントによると、テンプレート内のSysprep済みディスクに対してはDISMというテクノロジを
使ってVHDファイルをマウントし、パッチを適用するという記述がありました。
オフラインと言いつつ、パッチ適用のためにマシンを起動し、Sysprepを台無しにしてしまう、
前のバージョンと大きな違いですね。
だからこそTechEdでは、デモでご紹介したかったのですが、
実際に動く環境を作ることができず、断念してしまいました。

私は断念してしまいましたが、実際に試してみたいという人や
正式なリリースを待って、すぐに使いたいので、環境だけでも整えておきたいという人のために、
簡単に実装方法を紹介しておきます。
ここでは、かいつまんで紹介しますので、詳細については、ベータプログラムに同梱の
Virtual Machine Servicing Tool Getting Started Guideを参考にしていただければと思います。

1.VMSTをインストールするホスト側の準備
・SCCMまたはWSUSの更新プログラム配布テクノロジの用意
(JREとかAcrobat Readerなどは?と考えると、この条件はハードルが高いですね)
・PsExecユーティリティを%ProgramFiles%Micrsoft Offline Virtual Machine Servicing ToolBinフォルダに格納
・PowerShellスクリプトの実行を許可するよう、Set-ExecutionPolicyを実行しておく(RemoteSignedで十分です)

2.仮想マシン側の準備
・ドメインのメンバとして構成 (これまたハードルの高い条件ですね)
・DHCPを有効にする (ということは、DHCPサーバーも用意するってことですね)
・仮想ゲストサービスをインストール
・WSUSを利用する場合は、WSUSサーバーの場所をGPOを通じて設定しておく
・SCCMを利用する場合は、クライアントエージェントのインストールとインベントリの収集、
仮想マシンをグループ化したコレクションを作成する
つまり、仮想マシン側の準備としては、普通にWSUSやSCCMを使って更新プログラムが
適用できるような状態を作っておきなさいって、ことですね。

3.VMSTの設定
VMSTのインストールを済ませたら、VMSTを起動し、次の設定をします。

3-1.左ペイン[Administration]から[Configure Tool]をクリックし、VMSTの基本設定を行う
Configure Toolはウィザードになっていますので、以下の項目を入力してください。
・Configure Servers:VMMサーバー名とWSUSサーバー名(SCCMサイトサーバー名)
・Configure Maintenance Hosts:メンテナンスホストとして使うホストが所属するホストグループとホスト名
・Configure Maintenance Hosts for Servicing Offline VHDs:メンテナンスホスト名と仮想マシンを保存するパス
・Configure Global Settings:タイムアウトまでの時間

3-2.左ペイン[Groups]から更新プログラムを適用する仮想マシンのグループを作成する
グループの作成は以下のように4つの種別に分かれており、
例えば、ホストに展開された仮想マシンのグループを作成する場合は[Virtual Machines on Host Groups]から
グループを作成します。

 VMST1

3-3.左ペイン[Servicing Jobs]から[New Servicing Jobs]をクリックし、
更新プログラム適用のジョブを作成する
New Servicing Jobsはウィザードになっていますので、以下の設定を入れてください。
・Configure Stopped Virtual Machine Servicing Job:ジョブ名と更新プログラム適用に使用するテクノロジ
・Select Virtual Machines:更新プログラムを適用する仮想マシンまたはグループの名前
・Select a Network:更新プログラム適用に使用するネットワーク(仮想ネットワーク)
・Select Maintenance Hosts:メンテナンスホストの指定
・Configure Account Information:更新プログラムを適用するために使用するアカウント(仮想マシンの管理者アカウント)
・Schedule the Servicing Job:更新プログラム適用を開始する日時

VMST2

できあがると上図のようにジョブが登録され、時間になると自動的に更新プログラムの実行を開始します。

このような流れでVMSTを設定して利用します。
最後に、3-3に出てきたウィザード項目について補足を。

■メンテナンスホスト
メンテナンスホストとは、仮想マシンに対して更新プログラムの適用を実行するときに、
仮想マシンを実行するホストのことです。仮想マシンはもともと配置されているホスト上で、
VMSTのジョブを実行するわけではなく、メンテナンスホストとして定義したホストに仮想マシンを移動し、ジョブを実行します。
また、メンテナンスモードとの違いについては、TechNet 「メンテナンスホストについて」にて
以下のように紹介されています。

メンテナンス ホストと “メンテナンス モード” のホストを混同しないように注意してください。メンテナンス モードとは、物理ホストにメンテナンス タスクを実行するために一時的に開始されるもので、メンテナンス ホストは、バーチャル マシンに現行のメンテナンス タスクを実行するために指定されるものです。

■更新プログラム適用に使用するネットワーク
VMST実行時には、仮想マシンが普段使用している仮想ネットワークとは異なる仮想ネットワークを
割り当てて実行することができます。このオプションを定義しておくことで、事実上、オフラインで
更新プログラムを適用することができます。

以上です。

ところで、勘の良い人なら、DISMが使えるなら、わざわざVMST3.0を使わなくてもよいんじゃない?と思うことでしょう。
DISMでどうやって実装しようか、なんてことを考えていたら、COMPUTER WORLDでおなじみの山市良さんが
その方法を紹介してくださってました。

■COMPUTER WORLD BLOG – VHDのオフラインパッチ by DISM
http://blog.computerworld.jp/2010/08/09/offlinepatch-by-dism/

とてもすばらしい記事なので、ぜひご覧になってみてください。