2012/05/07

System Center 2012 RTM > VMM でサービスの仮想マシンを更新する

前回は、System Center 2012 Virtual Machine Manager で展開したサービスの、Server App-V 仮想アプリケーション部分のバージョンアップをアップグレードドメインを使用して、ダウンタイムなしで実行してみました。今回は、同じ展開済みのサービスの仮想マシンのゲスト OS 部分の更新をしてみたいと思います。

今回→) System Center 2012 RTM > VMM でサービスの仮想マシンの更新する
まず、仮想マシンのテンプレートで使用している Windows Server 2008 R2 SP1 の Sysprep 済み VHD をコピーします。


コピーした VHD を、winsv2008r2sp1_May2012.vhd という名前に変更して、作業用の仮想マシンに接続し、起動します。このとき、Sysprep を繰り返し実行しても「致命的なエラー」にならないように、仮想フロッピーディスク (.vfd) に次のような unattend.xml (参考: Computerworld の記事)  を仕込んだものを仮想マシンに割り当てて、起動します。


ゲスト OS が起動し、Mini-Setup が完了したら、 Windows Update を実行して、最新状態に更新します。


C:\Windows\Panther\unattend.xml を削除します。これは、VFD 内の unattend.xml のキャッシュです。削除しておかないと、サービス展開でゲスト OS の構成に失敗します。その理由は→Sysprep の繰り返しにご注意


 C:\Windows\System32\Sysprep\Sysprep.exe を実行します。コマンドラインの場合は、Sysprep /oobe /generalize /shutdown 

Sysprep を実行する際には、応答ファイルが入っている VFD を切断してから実行してください。Sysprep 実行時に、応答ファイルの検索パス (FD や %SYSTEMDRIVE%、C:\Windows\System32\Sysprep など) に Unattend.xml が見つかると、その時点で C:\Windows\Panther にキャッシュとしてコピーされてしまいます。


仮想マシンが停止したら、更新された VHD の完成です。Virtual Machine Manager のライブラリに放り込んでおきます。

 現在、展開済みのサービスの基になっているテンプレートのコピーを作成し、新しいリリース名を設定します (例: v2 をコピーして v3 に) 。


コピーした新しいリリースのサービス テンプレートをデザイナーで開き、仮想マシン層の VHD を削除して、新しい VHD に入れ替えます。VHD を入れ替えたら「保存と検証」をクリックして、サービス テンプレートを保存します。


展開済みのサービスを表示し、「テンプレートの設定」をクリックして、新しいサービス テンプレートを指定します。

アップグレードドメインを使用した更新が開始しました。今回は、tomcat002.lab.contoso.com から更新が始まりました。当然ながら、アプリケーション (Tomcat) はオンラインのまま。


1 台目の更新でジョブが失敗してしまいましたが、「再開」することで最後まで完了しました。



ジョブの流れを追っていくと、アプリケーション設定を VHD (仮想マシン名.vhd という名前で SCSI コントローラーに一時的に接続されていました) に退避して、戻すという操作を行っているようです (今回はアプリの更新が無いため?)。


この VHD をジョブ実行中にコピーして (更新が終わると削除されます)、ローカル マウントし、中身を確認してみたところ、Server App-V の Q ドライブがコピーされているようでした。


一連の投稿では、Server App-V の単純なサービスでサービス展開とアプリの更新、仮想マシンの更新を試してみましたが、Web アプリケーション (WebDeploy) の層についても、同じようになっていると想像します。データ層の更新はどうなっているのかな?

0 件のコメント: