2011/07/26

VMM2012BETA > SQL Server > SQL Server 2008 R2 の Sysprep

System Center Virtual Machine Manager (SCVMM) 2012 Beta のサービス展開の、データベース層の自動展開の仕組みを理解するため、その要素技術である SQL Server 2008 R2 の Sysprep 対応およびデータ層アプリケーション (DAC)についてのお勉強です。

VMM2012BETA > Server App-V > Apache HTTP Server をサービスとして自動展開してみた
http://yamanxworld.blogspot.com/2011/07/vmm2012beta-server-app-v-apache-http.html
VMM2012BETA > Web Deploy > VMM2012 で Web Deploy
http://yamanxworld.blogspot.com/2011/07/vmm2012beta-web-deploy-vmm2012-web.html

今日は、SQL Server 2008 R2 でサポートされた Sysprep 対応機能のお話...


SQL Server 2008 R2 は、Windows の Sysprep に対応しました。ただし、右の「新規インストールを実行するか、既存のインストールに機能を追加します。」を選択してインストールした SQL Server のインスタンスを Sysprep で一般化できるというわけではありません

SQL Server のインスタンスをイメージとして配置し、Windows の Mini-Setup が完了したあとに、インスタンスのイメージから実際のインスタンスのインストールを行うという形になります。詳しくは、以下を参照してください。

MSDN Library > SysPrep を使用して SQL Server 2008 R2 をインストールする方法
http://msdn.microsoft.com/ja-jp/library/ee210664.aspx


今回は、Hyper-V 仮想マシンに、ゲスト OS として Windows Server 2008 R2 Enterprise SP1 をインストール済みの環境に、SQL Server 2008 R2 のインスタンスのイメージを配置して、Sysprep 済みの VHD を作成してみたいと思います。

Windows の Sysprep イメージに SQL Server のインスタンスのイメージを含めるには、「SQL Server インストール センター」で、「詳細設定」の「SQL Server のスタンドアロン インスタンスのイメージの準備」を実行します。

「機能の選択」では、選択肢が少ないことに気付きます。通常のインストールとは異なり、Analysis Servicesおよび共有機能のすべて (クライアント接続ツールや管理ツールなど) が選択できません。

「インスタンスの構成」ページでは、「インスタンス ID」を入力します。インスタンス ID は、準備済みイメージを識別するためのもののようです。最終的に、MSSQLServer または指定したインスタンス名で上書きされることになります。ここでは、既定のインスタンス名と同じ「MSSQLServer」にしています。ちなみに、Petshop アプリケーション用の VHD に含まれる準備済みインスタンスのインスタンス ID は、「SYSPREPSQL」です。

How to deploy the Pet Shop Application as a Service in VMM

これで SQL Server インスタンスのイメージの準備が出来ました。あとは、Windows の Sysprep (C:\Windows\System32\Sysprep\Sysprep.exe /oobe /generalize /shutdown) を実行して仮想マシンを停止すれば、目的の VHD の完成です。

ですが、その前に SQL Server インスタンス イメージの完了の練習もしておきましょう。ここで Sysprep は実行せずに、Hyper-V マネージャーで仮想マシンのスナップショットを作成しておきます (あとで戻って、Sysprep するために)。

------- ここからは Mini-Setup 後の SQL Server インストール完了の練習 -------

スナップショットを作成できたら、ここからは Sysprep 後の Mini-Setup が終わって、Windows が構成された状態だと思ってください。

スタートメニューの「Microsoft SQL Server 2008 R2\構成ツール\SQL Server 2008 R2 のインストールの完了」をクリックして、インストールの完了を開始します。このとき、インスタンスのイメージを準備したときの SQL Server 2008 R2 のインストール メディアにアクセスできない場合、
「SQL Server のセットアップで次のエラーが発生しました: デバイスの準備ができていません。」と表示されます。その場合は、インストールメディアをセットして再実行してください。この点は重要です。インストールの完了には、インストールメディアまたはそのコピーへのアクセスが必要だということを覚えておいてください。ちなみに、「SQL Server 2008 R2 のインストールの完了」のショートカットには、「"C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2\setup.exe" /action=completeimage /installmediapath="D:\x64\setup"」のようなコマンドラインが設定されています。

「インスタンスの構成」の画面では、「既定のインスタンス(MSSQLServer)」または任意のインスタンス名を指定します。ここでの指定で、インスタンス ID の名前は上書きされることになります。

続いて、サービスアカウントや照合順序 (サーバーの構成)、認証モードや SQL Server 管理者 (データベース エンジンの構成) などを設定します。このあたりは、通常のインストールと同じです。

最後の「イメージの完了の準備完了」の画面にきたら、 「完了」ボタンをクリックします。しばらく待つと、インストールが完了し、めでたく SQL Server のインスタンスが稼働し始めます。




Sysprep 後の Windows をウィザードで操作するのは、あまり芸がありません。せっかく、Windows の構成を自動化 (応答ファイルで) できるのだから、SQL Server のインストールの完了まで自動化したいところ。その方法の 1 つは、構成ファイルを使用した方法になります。「イメージの完了の準備完了」で、「完了」ではなく、「キャンセル」をクリックします。「構成ファイルのパス:」の場所にある「ConfigurationFile.ini」というファイルがあるので、これを利用します。このファイルには、先ほど実行したウィザードの内容が出力されています。ただし、セキュリティに関わるパスワード(サービスアカウントやsaのパスワード)は含まれません。それらを書き込んだ上で、次のコマンドラインで SQL Server 2008 R2 の Setup.exe を実行すれば、無人インストールを実行できます。

setup.exe /configurationfile=MyConfigurationFile.ini /IAcceptSQLServerLicenseTerms="True" /q
(/installmediapath="x64\setupへのパス")

Windows ファイアウォールも構成しておきましょう。SQL Server および SQL Browser のための受信の規則は、次の 2 つのコマンドラインで許可できます。

netsh advfirewall firewall add rule name="SQL Server" dir=in protocol=TCP localport=1433 action=allow
netsh advfirewall firewall add rule name="SQL Server Browser" dir=in protocol=UDP localport=1434 action=allow


------- ここまでは Mini-Setup 後の SQL Server インストール完了の練習 -------


さて、SQL Server 2008 R2 のインスタンスイメージの準備と完了の手順がわかったところで、先ほど作成したスナップショットに戻り、Sysprep を実行します。

おっとその前に、SQL Server 2008 R2 のインストール メディアから、「C:\SQLInstall」などのフォルダーにファイルをコピーしておきましょう。インストールの完了には、SQL Server 2008 R2 のインストール メディアまたはそのコピーが必要になるからです。すべてをコピーした場合、VHD のサイズは 5.89 GB 増加します。x64 環境の場合は、x86 および ia64 フォルダーを除外できます。その場合、3.77 GB 程度で済みます。
インストール メディアの内容をコピーしたら、Sysprep を実行して仮想マシンを停止します。これで、SQL Server 2008 R2 のインスタンス イメージを含む Sysprep 済み VHD の完成です。

今後、できあがった VHD は、SCVMM 2008 R2 Beta でテストするために、ライブラリ共有にコピーしておきます。

つづく→

0 件のコメント: