ソフマップ・ドットコム

Windows Server での仮想環境( Windows Server 2012 と SCVMM )での検証や勉強した事を書き綴る技術色の強いブログです。

ASP.NET 4.0 Web アプリケーションの展開


単純な HTML のみで構成された Web アプリケーションを前回は SCVMM で自動展開する方法を解説しましたが、今回は ASP.NET 4.0 で構成された Web アプリケーションの自動展開について解説します。

前回同様、単純な構造の Web アプリケーションで、Visual Web Developer 2010 Express のテンプレートに、ほんのちょっとだけ味付けをした単純な Web アプリケーションです。
Visual Web Developer 2010 Express は Web アプリケーションの開発に特化した開発環境で、Microsoft のサイトから無料でダウンロードして使用する事が出来ます。無料とはいえ、立派な開発環境であるため、ある程度の Web アプリケーションの開発が可能です。

Visual Web Developer 2010 Express で作成した Web アプリケーションをパッケージ化して、SCVMM のライブラリへ配置してから展開する流れは、前回と同じです。
今回は.NET Framework 4.0 環境で構成した Web アプリケーションですので、下記の画像のように、パッケージ化する前に、対象の.NET Framework を指定しておく必要があります。

対象となる .NET Framework の指定

今回、SCVMM で自動展開する、以下の様な Web アプリケーションを自動で展開します。

デモサイト

Web アプリケーションのパッケージ化と SCVMM へのインポート

Visual Web Developer 2010 Express で構成した Web アプリケーションの配置パッケージを作成します。
右側にあるソリューションエクスプローラーにある、配置パッケージの作成をクリックして、パッケージの作成を行います。

配置パッケージの作成

パッケージは前回同様、zip 形式で発行されます。DemoWebApp.zip としてパッケージ化されました。

パッケージ化された Web アプリケーション

パッケージを SCVMM のライブラリへインポートするため、ライブラリサーバへ直接移動します。

ライブラリサーバへ移動

SCVMM のコンソール画面のライブラリメニューの上部リボンにある物理リソースのインポートをクリックします。

SCVMM にインポート

ライブラリリソースのインポートウインドウが起動するので、下部にある、リソースの追加をクリックし、インポートするパッケージを選択します。

リソースの追加

インポートするパッケージを選択したら、ライブラリサーバおよびインポートされるリソースの保存先の選択の箇所で、インポートする場所を指定します。

インポート先の指定

インポートが完了したら、SCVMM のコンソールから確認できます。

インポートされたパッケージ

.NET Framework 4.0 の自動インストールの設定と準備

今回展開するパッケージは.NET Framework 4.0 の環境下でのみ、稼働するアプリケーションですので、展開する仮想サーバに.NET Framework 4.0 をインストールする必要があります。.NET Framework 4.0 のインストールも完全に自動化する必要があるため、無人インストール用のスクリプトを作成する必要があります。

まずは.NET Framework 4.0 のダウンロードを行い、SCVMM のライブラリへインポートしておきます。
ダウンロードは以下のサイトから行えます。

.NET Framework 4.0 のダウンロード

次に、仮想サーバの展開時に.NET Framework 4.0 を自動的にインストールするためのスクリプトを作成します。
以下のスクリプトをテキストエディタへ貼り付け、InstallDotNetFx4.cmd と名前を付けます。

dotNetFx40_Full_x86_x64.exe /q /norestart
%Windir%\Microsoft.NET\Framework64\v4.0.40419\aspnet_regiis.exe -i -enable

スクリプトの簡単な説明ですが、 1 行目は .NET Framework のインストーラである dotNetFx40_Full_x86_x64.exe のサイレントインストールを実行し /norestart オプションを付けることで、再起動を抑制しています。.NET Framework 4.0 を有効にするためには仮想サーバの再起動が必要ですが、2 行目のスクリプトで ASP.NET 4.0 を有効化したいので、/norestart オプションを追加しています。

.NET Framework 自動インストールスクリプト

以上のスクリプトと、.NET Framework 4.0 のインストーラを「 doNetFx40.cr 」と名前を付けたディレクトリに移動して、\\VMM サーバ\MSSCVMMLibrary\ApplicationFrameworks\ 以下に保存します。ディレクトリ名に.cr とつけたのは、SCVMM にスクリプトパッケージとしてに認識させるためです。

サービステンプレートの作成とアプリケーションの構成

.NET Framework のインストール準備などが整ったので、サービステンプレートの作成を行います。SCVMM のコンソールからライブラリメニューにある、サービステンプレートの作成を選択します。

サービステンプレートの作成

新しいサービステンプレートの選択画面で、サービステンプレートの名前を付け、テンプレートのパターンから単一マシンを選択します。サービステンプレートの名前は「 WebApp 展開テスト 」としましたが、任意の名前で問題ありません。

新しいサービステンプレート

サービステンプレートデザイナーが開いたら、使用する VM テンプレートをドラッグしてコンピュータ層を右クリックしてプロパティを選択します。

サービステンプレートデザイナー

アプリケーションの構成画面で、互換性のあるオペレーティングシステムにすべてチェックを入れます。

互換性のあるオペレーティングシステムにすべてチェック

次にスクリプトリソースパッケージを選択します。選択するパッケージは WebDeploy_x64_ja-JP_3.1236.1631.cr です。

スクリプトリソースパッケージ

スクリプトリソースパッケージを設定したら、実行可能プログラムに cmd.exe を指定して、パラメータに以下のスクリプトを指定します。

/q /c InstallWebDeploy.cmd

タイムアウトは余裕を見て 400 秒に指定します。

インストール前処理の設定

次に、追加タブをクリックし、Web アプリケーションを選択します。

Web アプリケーションを選択

続いて、アプリケーションスクリプトを選択します。

アプリケーションスクリプト

スクリプトリソースパッケージの参照から、先ほど、用意した.NET Framework のインストールリソースを選択します。

.NET Framework のインストールリソース

ここで、.NET Framework のインストールの設定を行います。まず、実行可能プログラムに cmd.exe を指定して、パラメータには以下のスクリプトを指定します。

/q /c InstallDorNetFx4.cmd

スクリプトリソースパッケージには先ほど指定した、dotNetFx40.cr が設定されているのを確認します。
次に、タイムアウトの時間を 1000 秒に設定します。.NET Framework のインストールには結構な時間が掛かるため、かなり余裕を見た設定にしています。タイムアウトでの展開失敗というのは、ありがちな罠なので注意してください。
タイムアウトの設定が完了したら、その下にある詳細ボタンをクリックします。

スクリプトの設定

スクリプトコマンドの詳細設定ウインドウが起動するので、赤丸でくくってある部分「 スクリプトの実行が終わる度に再起動する 」にチェックを入れます。ここにチェックを入れることで、ASP.NET 4.0 を有効化した後に、再起動される低みになっています。

スクリプトコマンドの詳細設定

次に、Web アプリケーションの設定を行います。ライブラリから、Web アプリケーションのパッケージを参照を押して選択します。

パッケージの参照

先ほど、パッケージ化した Web アプリケーションである DemoWebApp.zip を選択します。

パッケージを選択

名前には任意の名前を付けます。また、Web アプリケーションパッケージの欄に、先ほど指定した DemoWebApp.zip がっ設定されているのを確認します。

Web アプリケーションパッケージの設定完了

次に、OS の構成画面で、インストールするサーバの役割を選択します。Web サーバと ASP.NET 4.5 / ASP.NET / IIS 管理コンソールにチェックを入れて OK をクリックして設定を完了します。

インストールするサーバの役割を選択

これでサービステンプレートの作成が完了です。

配置先ホストの選択と展開する仮想サーバのプロパティの設定

サービステンプレートの作成が完了したら、次は配置先ホストの選択をします。☆印の評価を目安に、配置するホストを選択します。

サービスの展開画面
サービスの展開の画面が表示されるので、下部ペインの右上にある、すべてのプロパティの表示をクリックします。

プロパティ

展開する仮想サーバのプロパティを設定します。
まず、仮想サーバの構成ファイルの配置場所の指定をします。配置先ホストのローカルパスで指定します。また、仮想サーバのホスト名を指定します。

VHD の保存先を指定

次に、VHD の保存先と名前を指定します。
また、ソースとなる VHD に間違いがないか確認しておきましょう。

サービスの展開を開始

サービスの自動展開

配置先ホストの設定・仮想サーバのプロパティの設定が完了したら、サービスの展開のが目の上部にある、サービスの展開ボタンをクリックします。

サービスの展開が失敗

サービスの自動展開が始まりましたが、エラーとなり展開が失敗しました。
ログを見てみると、エラーコード 22632 が返されています。指定したパスが見つかりませんとありますが、何らかの原因で SCVMM がスクリプトに記述されている.NET Framework のインストーラのパスが認識されなかったのか、原因はよくわかりません。
エラーに関して Google で検索しても、詳細な情報が見つかりませんので、ジョブの再開をクリックします。

今度は順調に、展開が進んでいます。Web アプリケーションパッケージが無事にインストールされたようです。

今度は順調に、展開が進んでいます。Web アプリケーションパッケージが無事にインストールされたようです。

Web アプリケーションのインストールが完了している

今度は、サービスの展開が無事に完了しました。
SCVMM のコンソールからサービスの一覧を確認し、展開したサービスの展開状況を確認します。
無事に仮想サーバと Web アプリケーションが展開され、問題なく動作しているようです。

展開が完了

コンソールから展開した仮想サーバへ接続し、Web アプリケーションの動作確認を行います。

ロック画面

ログオン画面で、ドメインアカウントとパスワードを入力します。

ログオン画面

ログオンしたら、ブラウザから、http://localhost/ へアクセスします。
無事に、ブラウザで Web アプリケーションが表示されました。

ブラウザからアクセス

サーバに配置された構成ファイルなども確認できます。

Web アプリケーションの構成ファイルなど

以上で、ASP.NET 4.0 Web アプリケーションの展開が完了しました。
このように、あらかじめパッケージ化されている Web アプリケーションがあれば、それ専用のプロファイルを事前に作成しておき、サービステンプレートの作成の際に適用すれば、アプリケーションの構成の設定はスキップできますので、より早くアプリケーションの展開が実現できます。


, , , ,


Facebook ページへの「いいね!」もお願いします。 Facebook ページで最新記事のお知らせと、外部サイトの紹介を行っています。
是非「いいね!」をしていただき、最新の情報を Facebook で受け取ってください。



Comments are currently closed.