System Center 2012 Virtual Machine Manager SP1 でのベアメタル展開をしましたので記述しておきます。VMM では環境構築後にノードのスケールアウトを行う際の自動化ができます。そのテクノロジとしてベアメタル展開が用意されています。
その概要は次の通り。
ベアメタル展開の概要
- アウトオブバンド管理(OOB)のサーバーを検出し、PxE ブート機能を使用してベアメタルサーバーが再起動される。
- ベアメタルサーバーは、管理サーバーの役割として VMM に追加された WDS サーバーを検索する。WDS サーバーには VMM プロバイダーが搭載され、このプロバイダーが VMM プロビジョニングツールを使用して起動されたベアメタルサーバーからの PxE 要求を管理する。
- WDS サーバー上の VMM プロバイダーは、VMM サーバーと接続して、ベアメタルサーバーに管理対象ホストを展開する権限があることを確認する。
- ベアメタルサーバーが VMM で認証されると、Windows PE イメージがこのサーバーにダウンロードされる。このイメージには、ベアメタルサーバーへの OS システムの展開を制御する VMM エージェントが含まれる。
- VMM エージェントは、ファームウェアの更新、RAID の構成およびパーティションの構成とフォーマットを指定できる、汎用的なコマンドスクリプトを実行する。
- 仮想ハードディスク(VHD)が、ライブラリーからホストコンピューターにダウンロードされる。よって、ベアメタル展開においては VHD からのブートが使用される。
- ホスト特有のドライバーがある場合は、ライブラリサーバーからダウンロードされる。
- 展開後のカスタマイズが実行される。カスタマイズは Sysprep のセットアッププロセスを使用し、サーバー用の設定(サーバー名など)や、ドメイン参加などのオプションがある。
- Hyper-Vの役割をインストールし、有効化する。
インフラ構築
すでに、VMM管理サーバーが導入されていることが前提となります。更に、WDSサーバーおよびDHCPサーバーが必須です。WDSサーバー構成は全てデフォルト設定でOKです。
イメージ準備
Windows Server 2012 のイメージを用意します。「install.wim」ファイルをローカルにコピーし、編集します。
mkdir c:mount
dism /Mount-Wim /WimFile:C:install.wim /index:4 /MountDir:C:mount
dism /Image:C:mount /Set-LayeredDriver:6
dism /Unmount-Wim /mountdir:C:mount /commit
これはWDSの展開を行うと、キーボードの設定が 101/102 キーボードになることを防ぐために行います。また、今回は「Windows Server 2012 DataCenter Edition」をインストールするので「index:4」にしています。
参考として、LayeredDriver や WDS で Windows 8 を展開する際に日本語キーボードを設定する などに詳しく書いてあります。
次に、「install.wim」をVHDファイルに変換します。「Convert-WindowsImage.ps1」を使用します。
次のコマンドを実行します。
Set-Executionpolicy unrestricted
Convert-WindowsImage.ps1 –showui
- Choose a source で先ほど編集したソースを指定します。
- Choose a SKU from the list で ServerDataCenter を指定します。
- Choose configuration options で VHD Format を 「VHDX] を指定し、VHD Size を「100」とします。このサイズはインストール後のCドライブのサイズになります。後は、適切な値を入力します。
このファイルをライブラリにコピーします。
応答ファイルの準備
ベアメタル展開に使用する応答ファイルを作成します。ポイントは次の2点になります。
- ロケールの設定を応答ファイルで行う(これをしないと、言語設定が英語になります。よって、キーボードも英語のままです。更にイメージでLayerdDriverの編集を行わないと例えロケールの設定を行ってもキーボードは英語になります)。
- Autologon の設定を行います(AutoLogon の設定を行わないとベアメタル展開の途中で止まります。AutoLogon 後にスクリプトを実行し再起動を行うことによりベアメタル展開が正常に動作します)。
作成した応答ファイルは次の通り。
<?xml version=”1.0″ encoding=”utf-8″?>
<unattend xmlns=”urn:schemas-microsoft-com:unattend”>
<settings pass=”oobeSystem”>
<component name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”amd64″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:wcm=”http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<AutoLogon>
<Password>
<Value>UABhACQAJAB3ADAAcgBkAFAAYQBzAHMAdwBvAHIAZAA=</Value>
<PlainText>false</PlainText>
</Password>
<Domain>contoso</Domain>
<Enabled>true</Enabled>
<LogonCount>1</LogonCount>
<Username>administrator</Username>
</AutoLogon>
</component>
<component name=”Microsoft-Windows-International-Core” processorArchitecture=”amd64″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:wcm=”http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<InputLocale>0411:00000411</InputLocale>
<SystemLocale>ja-JP</SystemLocale>
<UILanguage>ja-JP</UILanguage>
<UILanguageFallback>ja-JP</UILanguageFallback>
<UserLocale>ja-JP</UserLocale>
</component>
</settings>
<cpi:offlineImage cpi:source=”catalog:c:/wim2vhd/install_windows server 2012 serverdatacenter.clg” xmlns:cpi=”urn:schemas-microsoft-com:cpi” />
</unattend>
System Image Manager を使用して作成しました。このファイルは「BearMetal.xml」として保存しライブラリにコピーします。
ホストの準備
ホストの準備として、BMC 関連の設定を行います。今回は HP の iLO3 を使用します。ポイントは次通り。
- VMMから操作をする管理者用アカウントを作成する。
- 起動順序を PxE Boot を先頭にする。
- IPMI を有効にする。
- 最新のファームウェアにする。
iLO 3 のバージョンは 1.55 にしました。また日本語の言語パックは 1.5 にしました。
iLO 3 の設定はブラウザを使用して行います。これはサーバー購入時にタグが付属しており、そこにパスワードが記載されています。このタグがないとどうにもならないので注意が必要です。iLOの接続IPアドレスは、DHCPより付与されるIPアドレスを使用するか、もしくは静的に設定することになります。
ドライバーの準備
必要ならホストのインストールに使用するドライバーをライブラリにコピーします。今回はライブラリに「Drivers」フォルダを作成し、その中にドライバーをコピーします。更に、ドライバーにタグをつけます。タグをつけるには、ライブラリよりドライバーを選択し、プロパティを開くことによって行います。
VMMの設定
BMC用管理者実行アカウントの作成
iLO にアクセスするための実行アカウントを作成します。これは、iLO の管理画面で作成したアカウントの設定を VMM に設定します。今回は iLO に 「iloadmin」を登録したので、それを「BMC Administrator」として登録しました。
インストール用管理者実行アカウントの作成
インストールに使用する実行アカウントを作成します。今回はドメイン管理者アカウントを「管理者アカウント」として登録しました。
ファブリックの設定(論理ネットワーク、論理スイッチ、ネイティブポートプロファイル)
論理ネットワークと IP アドレスプールを作成
論理ネットワークは、VMM 導入前に Hyper-V マネージャーより外部ネットワークを作成した名前がデフォルトで採用されます。
IP アドレスプールを作成することにより、展開するサーバーに対して(物理、仮想ともに)静的アドレスを割り当てるための設定になります。
論理スイッチと、ネイティブポートプロファイルを作成
論理スイッチはホストに作成するスイッチになり、ネイティブポートプロファイルは、論理スイッチにバインドすることによって、スイッチが使用するサイトを指定します。
PXEサーバーの登録
WDSの役割がインストール済みのサーバーを登録します。WDSの構成はデフォルトになります(要するにWDSに対して特別な設定はしない)。
ホストプロファイルの作成
ライブラリよりホストプロファイルを作成します。ライブラリにあらかじめコピーしてあるvhdxファイルを指定します。ここで拡張サイズが表示されますが、これはwimからvhdxにイメージ変換した際に設定した値になります。
NIC が 2 枚あるので、管理用と VM 用に設定します。
ディスクの設定では、vhdxファイルが配置されるパーティションの設定を行います。
ホストのインストールに使用するドライバーがあるのであれば、指定します。
タグをあらかじめ作成しておくことにより、選択できます。
OS設定を行います。ドメインの設定を行います。
管理者パスワードを指定します。
IDを入力します。
必要なら、プロダクトキーを入力します。
タイムゾーンを指定します。
応答ファイルを指定します。
スクリプトを記述します。
スクリプトは次のものを記述します。
Dism /Online /Enable-Feature /Featurename:File-Services
netsh advfirewall firewall set rule name=”ファイルとプリンターの共有 (エコー要求 – ICMPv4 受信)” new enable=yes
shutdown /r /t 10
このスクリプトの意味合いは、次の通りです。
VMM より ホストのインストールが行われますが、応答ファイルにはロケールの設定を記述しています。しかし、このロケールの設定はOOBE処理が行われるので VMM 側で処理が終了したことがわからず永遠に待機状態になります。そこで応答ファイルには Autologon 設定を入れて一旦ログオン処理を行い再起動をする必要があります。次に、VMM はエージェントの導入を行いますが、VMM エージェントのインストールには「ファイルサーバー」の役割がインストール済みであり、更にファイアウォール設定で「ファイルとプリンターの共有 (エコー要求 – ICMPv4 受信)」の許可が必要です。
Adding a Host to System Center 2012 Virtual Machine Manager SP1 fails with error 415
当初は応答ファイルで役割のインストールおよびファイアウォールを設定しようとしましたが、うまく動きませんでした。よって、ここで記述しています。
このスクリプトが実行され再起動がかかると、VMMエージェントのインストールが始まります。
後は、VMMに登録されて完了になります。
ベアメタル展開
ファブリックのリソースの追加より、「Hyper-V ホストとクラスター」を選択します。リソースの場所として、「バーチャルマシンホストとしてプロビジョニングされる物理コンピューター」を選択します。
実行アカウントとして「BMC Administrator」を指定します。
今回はサブネットから検索をしています。
検索されたコンピューターをチェックします。この段階で、一旦 PxE ブートされ、物理情報を読み取ります。
ホストプロファイルを指定します。なお、PxE ブートがされたサーバーから情報を取得するまで次ページに進んでもデータが反映されませんので、少々待ちます。
コンピューター名を入力します。
ネットワーク設定を確認します。
データーディスクを確認します。
サマリーを確認し、完了します。後は、待つのみです。