仮想化に対する最も一般的な動機付けは、サーバーの使用率を改善し、運用スペースと消費電力量を低減するためのサーバー統合です。仮想化への道を進み始めると、さらに利点が得られます。大きな利点の1つは、仮想イメージ・テンプレートのライブラリーを使用して、新しい環境を迅速にプロビジョニングできることです。このためには、事前にインストールおよび構成されたテンプレートを作成します。このテンプレートは、わずかなカスタマイズによって迅速にアクティベイト(Activate/活性化(使用可能化))され、新しい実行仮想イメージを作成できます。この手法は、特に開発やテストのために新しい環境をセットアップする場合に非常に役立ちます。
この記事は、仮想マシン・テンプレート内で IBM ® WebSphere ® Application Server Network Deployment (ND) を使用するためのアプローチとサンプル・スクリプトを提供します。このアプローチでは、WebSphere Application Server V6.x が提供される新機能を利用します。その機能は新しいホストに簡単にコピーおよびカスタマイズが可能なインストール・テンプレートを作成するプロセスを容易にします。この記事では、WebSphere Application Server ND のインストールをカスタマイズする手法について取り上げ、WebSphere ベースのアプリケーションを組み込む方法について説明します。
ここで説明する手法は、基盤となる仮想化技術と選択するゲスト・オペレーティング・システムに関係なく適用されます。実際のネットワークとオペレーティング・システムのカスタマイズに関しては、プラットフォームとハイパーバイザーによって異なります。
仮想イメージ・テンプレートを使用して WebSphere Application Server をデプロイするプロセスは、図1に示す4つの主要なステップから構成されます。
- ベース・インストール・イメージを作成します。
- さまざまな環境でイメージをカスタマイズし再利用するために、どのWebSphere Application Server のカスタマイズを展開するか決定します。
- イメージをデプロイします。
- 新しいホスト環境でイメージをアクティベイト(Activate/活性化)します。
図1 仮想イメージ・テンプレートを使用して WebSphere Application Server をデプロイするためのステップ
これらの各ステップについて詳しく説明します。
仮想イメージを作成するには、まずテンプレート・イメージにインストールするソフトウェアを決定します。テンプレートを再利用してさまざまな環境をインスタンス化できるようにするために、多くの環境に共通のコンポーネントのみをインストールします。WebSphere Application Server Network Deployment のインストールおよび構成プロセスには、図2に示すソフトウェア (オペレーティング・システム、WebSphere Application Server、その他のミドルウェア、1つあるいは複数のアプリケーションなど) のインストール、プロファイルの作成、ノードのフェデレーション、クラスターの作成などが含まれます。ニーズに応じて、テンプレート・イメージにはこれらのコンポーネントのサブセットしか含まれない場合があります。この記事では、さまざまな要件に対応するために 3 つのテンプレート (ブランク、柔軟(Flexible)、および固定(Fixed)) の例を提示します。
図2 WebSphere Application Server Network Deploymentのインストールおよび構成ステップ
オペレーティング・システムのインストール
最初に行うことは、すべてのイメージの基礎として使用する「ゴールデン」オペレーティング・システム・イメージを作成することです。モニターや監査のためのエージェントなど、社内標準ソフトウェアをこのベース・イメージに含めることもできます。WebSphere Application Server V5 では、お客様はオペレーティング・システムの仮想イメージ・テンプレートだけを使用して、従来のプロセスですべての WebSphere Application Server インストールを取り扱いました。これはまだオプションですが、IBM は、お客様が仮想イメージ・テンプレートの一部として WebSphere Application Server を正常に複製するのも目にしてきました。これは、WebSphere Application Server V6 のプロファイル機能によってさらに簡単になります。
仮想イメージ・テンプレートの新規作成はターゲット・ハイパーバイザーに固有なので、ハイパーバイザーが提供する指示に従ってください。
- VMware では、新しい仮想マシンの作成プロセスにウィザード・ダイアログを使用できます。VMware Workstation または VMware ESX Server プログラムから、 File => New => Virtual Machine を選択して開始します。
- XEN には、新しい仮想イメージの作成プロセスにいくつかのソリューションがあります。SUSE Enterprise Server V10の場合は、YASTツールを使用して仮想イメージを作成する方法があります。 System => Virtual Machine Management => Run an OS installation program を選択して開始します。
イメージを作成したら、通常のOS インストール手順に従ってゲスト・オペレーティング・システムをインストールします。すべてのイメージに必要なその他の共通ソフトウェア (オペレーティング・システム・モニター・エージェントなど) もこの段階でインストールします。
WebSphere Application Server のインストール
WebSphere Application Server をインストールするには、イメージが複製される様々なアプリケーション環境を検討して、適切なインストールを選択します。多くの場合、テンプレートのインストールは WebSphere Application Server のデフォルト・インストールとほぼ同じです。
WebSphere Application Server をイメージ・テンプレートに追加するには、標準インストール・プロセスを使用して WebSphere Application Server をインストールします。ただし、インストールするオペレーティング・システムは、イメージにすでにインストールされているゲストOS です。インストール時にプロファイルを作成したり、パラメーターを構成したりする必要はありません。
Installation Factory Custom Install Program (CIP) を作成して、テンプレートへのこの初期インストールを実行することも考えられます。複数のハイパーバイザー (Vmware、XEN など)のためのテンプレートや物理的なインストールのためのテンプレートを作成する必要がある場合は、CIP を簡単に再利用できます。 Version 6 と Version 6.1 の両方のIBM Installation Factoryに関する詳細を記載した技術文書が公開されています。
プロファイルの作成
WebSphere バイナリーをデフォルトでインストールした後、いわゆるブランク・テンプレートが作成されます。インストールにプロファイルは含まれません。プロファイルはデプロイメントおよびアクティベーション段階(活性化する段階)で別に作成できます。ブランク・テンプレートを使用したアプリケーション・デプロイメントとトポロジー構築も、デプロイメントやアクティベーション時またはデプロイメント後に実行されます。表1に示すように、このアプローチは最も柔軟ですが、アクティベイトするまでには最も長い時間がかかります。(プロファイルの詳細については、『 System management for WebSphere Application Server V6: Easier system management with profiles (US) 』を参照してください。)
プロファイルを作成して、テンプレートにアプリケーションを直接インストールするシナリオのアプローチは他にもあります。このアプローチでは、追加でテンプレートを作成する必要があることもありますが、デプロイメント時またはデプロイメント後に必要な処理は大幅に少なくなります。後で説明するように、新しい環境に対する既存のプロファイルを素早く変更するために、WebSphere 管理タスクである changeHostname と renameNode をカスタマイズ・スクリプトで利用します。この管理タスクのサポートは WebSphere Application Server V6.0.2.27 または V6.1 以降で利用可能です。
柔軟(Flexible)テンプレートと固定(Fixed)テンプレートの2つのテンプレート例がこのアプローチに含まれます。 この2つのテンプレートには図2に示すようにプロファイルとオプションでアプリケーションが含まれています。固定(Fixed)テンプレートには、ノードの事前フェデレーションとクラスターの作成が含まれており、さらに多くの設定が含まれています。これらのテンプレートは IBM WebSphere Portal や WebSphere Process Server などの WebSphere 製品に使用でき、インストールと構成はテンプレート作成時に1回のみ実行されます。さらに、このアプローチは .CAR ファイルにエクスポートできないアプリケーションに適しています。
柔軟テンプレートは、さまざまなトポロジーをサポートします。すべてのプロファイルがデプロイメント前に 1つのテンプレート内に作成され、必要なプロファイルがデプロイメント段階でアクティベイトされます。固定テンプレートは 単一のトポロジーのみをサポートします。テンプレート作成フェーズで完全なトポロジーが構成されます。アクティベイト時に必要な唯一のステップは、ノードとサーバーの名前をカスタマイズすることです。そうすれば、最も速く簡単にアクティベイトできます。同じアプリケーションと環境を何度もデプロイする必要があれば、固定テンプレートが最適の選択です。
表1は、さまざまなテンプレートと推奨する使用法の比較を示します。
表1 さまざまなテンプレートと推奨する使用法の比較
| 使用法またはプロパティー | ブランク・テンプレート | 柔軟(Flexible)テンプレート | 固定(Fixed)テンプレート |
|---|---|---|---|
| 柔軟性 | 1つのテンプレートは、多くのアプリケーションと構成をサポート | 1つのテンプレートは、さまざまなトポロジーをサポート | 単一のアプリケーション、単一のトポロジーをサポート |
| テンプレート・イメージ・サイズ | 最小(プロファイル、アプリケーションなし) | より大きい(プロファイルを含む) | より大きい(プロファイルを含む) |
| アクティベーションまたはデプロイ後のアクティビティー | プロファイル作成、トポロジー構築、アプリケーションのデプロイメント | トポロジー構築 | 名前を変更して開始するだけ |
| スピード | アクティベーション時間は最長 | アクティベーション時間は中程度 | アクティベーションは最速 |
| 推奨する使用法 |
|
|
|
柔軟テンプレートまたは固定テンプレートを使用する場合、このステップでプロファイルを作成する必要があります。プロファイルを作成するには、2 つの方法、つまりグラフィカル・インターフェースを備えたプロファイル管理ツールを使用する方法と、コマンドを使用する方法があります。ここでは、プロファイル管理ツールを使用します。(2番目の方法は後述します。)
グラフィカル・モードで、以下のコマンドを使用します。
<WAS_HOME>/bin/ProfileManagement/pmt.sh |
グラフィカル・インターフェースにより、表示される指示に従ってステップごとにカスタマイズされたパラメーターを入力するように求める画面が表示されます。
柔軟テンプレートでは、default、dmgr、managedという3つのプロファイルを作成します。デプロイメント段階でこれら3つの事前作成済みプロファイルから、カスタマイズされたスタンドアロン、デプロイメント・マネージャー、管理対象ノード、またはセルを構築することができます。
固定テンプレートでは、最初にトポロジーを決定しなければなりません。この記事では、例として 1つのデプロイメント・マネージャーと 2つの管理対象ノードを持つネットワーク・デプロイメント・クラスターを示します。各管理対象ノードは、クラスター・メンバーとしてアプリケーション・サーバーを 1台持っています。したがって、このときに 1つのデプロイメント・マネージャー・プロファイルと 2つの管理対象ノード・プロファイルを作成します。これらは、デプロイメント・マネージャーとフェデレートできます。
トポロジーの構築
図2に示すように、固定テンプレートのセル・トポロジーはテンプレート作成時に実際に作成されます。そのため、このステップで、作成されているプロファイルを構成しトポロジーを作成します。最初に行うことは、以下のコマンドを使用してデプロイメント・マネージャーを始動することです。
${DM_PROFILE_HOME}/bin/startmanager.sh |
次に、以下のコマンドを使用して、2つの管理対象プロファイルを管理対象ノードとしてデプロイメント・マネージャーとフェデレートします。
${MN_PROFILE_HOME}/bin/addNode.sh ${DM_HOSTNAME} |
デプロイメント・マネージャーの Web コンソールを使用して新しいクラスターを作成し、要件に従ってクラスター・メンバーを追加できます。JVM ヒープ・サイズやログ・ファイル・サイズなど、クラスターやアプリケーション・サーバーの属性の更新もこのときに実行します。
アプリケーションのインストール
WebSphere アプリケーションは、オプションとしてテンプレートに直接インストールするか(柔軟または固定の場合)、アクティベーション時に .CARファイルからインポートするか (ブランク/スタンドアロンの場合)、またはデプロイメント後に取り扱うことができます。既存のアプリケーション・デプロイメント・スクリプトがすでにあれば、それをデプロイメント・プロセスに組み込むことができます。
アプリケーションをテンプレートに含めないでいることにより、柔軟性は最大になります。アプリケーションを .CARファイルにエクスポートできれば、このファイルをスタンドアロン・ノード・アクティベーション・プロセスの一部としてインポートでき、同じテンプレートで複数のアプリケーションをサポートできます。
ただし、サービス統合バス(SIBus)を使用するアプリケーションなど、.CARファイルとして機能しないアプリケーションもあります。さらに、同じサーバーにデプロイするアプリケーションが多いと、.CAR ファイルのインポートに時間がかかることがあります。そのような場合は、柔軟テンプレートか固定テンプレートを選択するのもひとつの方法です。
アプリケーションをテンプレートに組み込むのであれば、通常の手順に従ってここでデプロイする必要があります。
テンプレート・イメージをインストールした後、さまざまな WebSphere 環境に対してイメージを素早くアクティベイト(使用可能化)する方法を決定する必要があります。新しい環境を作成するためにテンプレート・イメージをアクティベイトする場合、新しいイメージ・ロケーションのためのネットワーク変更、WebSphere 環境のカスタマイズなど、一連の必要なカスタマイズ・ステップがあります。これらのステップはすべて自動化できますが、ここでは WebSphere Application Server のカスタマイズに通常必要なステップの自動化に焦点を合わせます。(『 Automating deployment and activation of virtual images (US) 』を参照してください。そこには、オペレーティング・システムの自動化の例、WebSphere Application Server の自動化を組み込むためのフレームワーク、およびデプロイメント・スクリプトについて記載されています。)
この記事に含まれるサンプル・カスタマイズ・スクリプト ConfigWAS は、ユーザーが指定するいくつかのカスタマイズ・パラメーターを使用して、特定の環境のためのテンプレート・イメージのインスタンス化をサポートします。スクリプトが提供する機能は以下のとおりです。
- WebSphereプロファイル: スタンドアロン・ノード、デプロイメント・マネージャー、管理対象ノード、セルなど、WebSphereプロファイルの作成または更新を取り扱います。
- アプリケーションの組み込み: WebSphereアプリケーションのインポートを取り扱います。
- トポロジーの構築: デプロイメント・マネージャーの始動、ノードの追加、クラスターの作成、アプリケーション・モジュールの再マップ、アプリケーション・サーバーの始動など、選択したトポロジーの作成または更新を取り扱います。
ブランク・テンプレート・スクリプトは、WebSphere Application Server V6.0.2 または V6.1 で動作するように設計されています。スクリプトを見ると、ほとんどの機能が両方のリリースで提供されていますが、コマンド構文は異なります。V6.1 のみで提供されているスクリプト機能は、セキュリティーを構成するオプションです。WebSphere Application Server V6.1 では、管理セキュリティー構成はプロファイル作成オプションですが、V6.0.2 では同様な機能を有効にするために追加コードが必要です。さらに、柔軟トポロジーおよび固定トポロジーのカスタマイズのコマンドを使用するには、少なくとも V6.0.2.27 または V6.1 を必要とするものがあります。
最初に特定のサンプル・スクリプトを選択するには、テンプレート・イメージにどれだけ組み込んだかによって決まります。表 2に示すように、カスタマイズ・スクリプトはテンプレートによって異なる動作を実行します。例えば、ブランク・テンプレートでは ConfigWASカスタマイズ・スクリプトを使用してプロファイルを作成する必要がありますが、柔軟テンプレートと固定テンプレートでは既存のプロファイルを更新するためにのみ ConfigWASスクリプトが必要です。
表2 カスタマイズ時の動作
| プロファイル | 作成 | 更新 | 更新 |
|---|---|---|---|
| ノード | フェデレート | フェデレートおよび名前変更 | 変更なし |
| クラスター | 作成 | 作成 | 変更なし |
| アプリケーション | インポート | 再マップ | 変更なし |
| サーバー | 始動 | 始動 | 始動 |
プロファイルの作成
この記事では、プロファイルを動的に作成することにより、仮想イメージ・テンプレートの中で WebSphere Application Server ND V6 を前のリリースより簡単に使用できます。ブランク・テンプレートとともに使用するサンプル・カスタマイズ・スクリプトは、仮想イメージ・テンプレートを使用してさまざまなタイプの WebSphere環境の作成をサポートし、以下の構成を構築することができます。
- デプロイメント・マネージャー
- アプリケーション・サーバーおよび管理対象ノード
- スタンドアロン・ノード
- セル(デプロイメント・マネージャーおよびアプリケーション・サーバーの管理対象ノード)
必要なプロファイルは、WebSphere
createProfiles
コマンドを使用してスクリプトによって作成されます。例えば、WebSphere Application Server V6.1でのコマンドは以下のとおりです。
$CREATEPROFILE_CMD = "${WAS_HOME}/bin/manageprofiles.sh -create "; #ver 6.1
$CREATEPROFILE_CMD .= "-enableAdminSecurity true ";
$CREATEPROFILE_CMD .= "-adminUserName $SECURE_ADMINID ";
$CREATEPROFILE_CMD .= "-adminPassword $SECURE_PASSWD ";
$RESULT = `$CREATEPROFILE_CMD -templatePath $TEMPLATE_PATH/dmgr`; |
プロファイルの更新
柔軟テンプレートまたは固定テンプレートでは、既存のプロファイルを更新する必要があります。スタンドアロンおよびデプロイメント・マネージャーの場合は、単にchangeHostName コマンドを利用して以下のようにできます。
<MN_PROFILE_HOME>/bin/wsadmin.sh -conntype none
wsadmin>$AdminTask changeHostName { -nodeName <nodename> -hostName <new_hostname> };
|
管理対象ノードでは、フェデレーション後に管理対象ノード名が競合しないようにするためにrenameNodeコマンドも必要です。renameNode 実行時に WebSphere Application Server はデプロイメント・マネージャーに接続し、ノード上のすべてのサーバーを停止し、デプロイメント・マネージャー上のノード構成を変更し、ノードを同期化します。最後に、ノードのすべての構成ファイルのノード名を変更します。
<MN_PROFILE_HOME>/bin/renameNode.sh <dmgr_host> <dmgr_port> <new_nodename> |
カスタマイズ・スクリプトを使用したアプリケーションの組み込みは、スタンドアロン・ノードでのみ実行可能です。スクリプトは、WebSphere Application Server V6 の新機能を利用してプロファイル (.CAR ファイル) をエクスポート/インポートします。この手法は、単一テンプレート・イメージを使用する場合に、スクリプトへの入力パラメーターを変更して別の.CAR ファイル名を指定するだけで、別のアプリケーションをインスタンス化します。
WebSphere Application Server テンプレート・イメージで使用する.CAR ファイルを作成するには、以下のようにスタンドアロン・ノードから
ExportProfile
コマンドを発行します。
$EXPORT_PROFILE_CMD = 'wsadmin.sh -conntype NONE -c "\$AdminTask exportWasprofile
{ -archive '. $EXPORT_PROFILE_FILE .' } "';
|
ConfigWAS スクリプトでは、新しいプロファイルを作成後、次に ImportProfile コマンドが実行されて .CAR ファイルからアプリケーションがインポートされます。WebSphere Application Server は、新しいホスト環境に対してインポートされたプロファイルを自動的に調整します。
ImportProfile
コマンドは以下のように実行されます。
$IMPORT_PROFILE_CMD = 'wsadmin.sh -conntype NONE -c "\$AdminTask
importWasprofile { -archive '. $IMPORT_PROFILE_FILE .' } "';
$i_result =
'${WAS_HOME}/profiles/${appsrv_profile_name}/bin/${IMPORT_PROFILE_CMD}'; |
制限:
.CAR ファイルは、スタンドアロン・ノードを使用してエクスポートおよびインポートしなければなりません。既存のクラスターからアプリケーションのエクスポートは正常に実行されないので、行わないでください。また、現在の
ExportProfile
コマンドはメッセージングを処理しないので、アプリケーションがメッセージングを使用する場合は、カスタマイズ・スクリプト・ロジックを組み込んでサービス統合バス (SIB) を構成しなければなりません。
クラスターおよびクラスター・メンバーの作成
ブランク・テンプレートおよび柔軟テンプレートの場合、カスタマイズ・スクリプトでクラスターを作成します。固定テンプレートにはクラスター・セットアップがすでに含まれているので、スクリプトによるその他のカスタマイズは必要ありません。
クラスターを作成するには、最初に wsadmin AdminTask オブジェクトを使用して新しいクラスターを作成します。
$AdminTask createCluster {-clusterConfig {-clusterName ${ClusterName}} -replicationDomain
{-createDomain true}} |
次に、構成の変更を保存してノードを同期化します。クラスター・メンバーを作成するには以下のようにします。
$AdminTask createClusterMember {-clusterName ${ClusterName} -memberConfig {-memberNode
${HOSTNAME}Node01 -memberName ${HOSTNAME}Server01 -genUniquePorts false -replicatorEntry
true} -firstMember {-templateServerNode ${HOSTNAME}Node01 -templateServerName
${TemplateServer}}} |
構成を保存して、ノードを同期化する必要があります。
アプリケーション・モジュールの再マップ
WebSphere Application Server では、アプリケーション・モジュールの再マップを行うことができます。それには、wsadmin AdminApp オブジェクトの MapModulesToServers オプションを使用して、あるサーバーから別のサーバーまたはクラスターにマップを変更します。
set optionlist [list -MapModulesToServers $listofapp] puts "$AdminApp edit $app list $optionlist" $AdminApp edit $app $optionlist $AdminConfig save |
ブランクおよび柔軟テンプレートの場合、この機能を利用してアプリケーション・モジュールをスタンドアロン・ノードのアプリケーション・サーバーから新しいネットワーク・デプロイメント環境のクラスターにマッピングを移すことができます。
WebSphere Application Serverの始動
WebSphere Application Server 実行環境を作成するには、追加のコマンドを実行する必要があります。スクリプトには、さまざまなトポロジーを始動するためのサンプル・コードが含まれています。
WebSphere デプロイメント・マネージャーを含むデプロイメントの場合、サンプル・スクリプトでは WebSphere Application Server の必要とされる始動順序に従って、最初にデプロイメント・マネージャーを開始します。デプロイメント・マネージャーの開始にはWebSphere startManager スクリプトを使用します。
$USER_PASSWD = "-username $SECURE_ADMINID -password $SECURE_PASSWD ";
$RESULT = '${WAS_HOME}/profiles/${dmgr_profile_name}/bin/startManager.sh $USER_PASSWD'; |
デプロイメント・マネージャーが開始すると、ブランク・テンプレート・イメージで管理対象ノードを作成している場合、以下に示す WebSphere Application Server addNode コマンドが実行され管理対象ノードがデプロイメント・マネージャーに追加されます。
$RESULT = '${WAS_HOME}/profiles/${appsrv_profile_name}/bin/addNode.sh ${DMGR_FULLNAME}
$USER_PASSWD';
$RESULT = '${WAS_HOME}/profiles/${appsrv_profile_name}/bin/startServer.sh $USER_PASSWD'; |
どのテンプレート・スクリプトも、サーバー始動コマンドを発行します。
テンプレート・イメージを作成し、カスタマイズ・スクリプトを調整して組み込むと、仮想イメージをアクティベイトしてさまざまな WebSphere Application Server 環境をサポートする準備が整います。それには、以下を実行する必要があります。
- 新しいホスト・プラットフォームのためのテンプレート・イメージのクローンを作成します。
- ネットワークとオペレーティング・システムをカスタマイズします。
- カスタマイズ・スクリプトを実行します。
このステップでは、ステップを手動で実行する方法について説明します。これらのステップの自動化については、『Automating deployment and activation of virtual images (US)』を参照してください。
仮想イメージのクローン作成
WebSphere Application Serverテンプレート・イメージをアクティベイトするには、イメージ・ファイルと仮想マシン・プロファイルをコピーします。
- XEN 仮想イメージの場合 、仮想マシンのイメージ・ファイルとXEN 構成ファイル(カーネル、名前、vcpus、メモリー、vifなどに関するXEN仮想マシン情報を含む) という2つのファイルをコピーします。デフォルトのvm構成ファイル・ディレクトリーは /etc/xen/vm/、vm イメージ・ファイル・ディレクトリーは /etc/xen/images/ です。
- VMware ESX Server V3 の場合 は、イメージ・ファイルと対応する構成ファイルをコピーします。例えば、「WebSphere」という名前の仮想マシンであれば、/vmfs/volumes/ ディレクトリーから新しい環境に WebSphere-flat.vmdk、WebSphere.nvram、WebSphere.vmdk、WebSphere.vmsd、WebSphere.vmx、およびWebSphere.vmxf ファイルをコピーする必要があります。
オペレーティング・システムおよびネットワークのカスタマイズ
仮想イメージがハイパーバイザーにコピーされた後、新しい環境でオペレーティング・システムに必要なCPUおよびメモリーのデフォルトのリソース割り振りの変更を指定できます。
- XEN を使用している場合、 リソース情報は構成ファイルにあります。
- VMware ESX Server V3 仮想イメージの場合、 構成は .vmx ファイルにあります。
仮想イメージを起動するための次のステップは、そのネットワークID をカスタマイズすることです。これは、多くの場合仮想イメージを再配置する上で注意が必要なエリアの1つです。このステップの詳細は、ハイパーバイザー、オペレーティング・システム、および貴社のネットワーク・ポリシーに依存します。環境によっては、IP アドレス、ホスト名、ドメインを変更せずにイメージを移動できるようにネットワークをセットアップできることもあります。この手法は、実稼働環境をコピーし、変更作業やテストを実施できる独立したネットワークをセットアップし、その後、イメージを実稼働環境に戻すという場合に非常に役立つことがあります。この手法はイメージ内のソフトウェアに関係なく使用可能なので、当てはまるのであればこの方法を検討することをお勧めします。
ただし、状況に応じ、このステップで仮想イメージのホスト名と IPアドレスを変更する必要があれば、オペレーティング・システムの対応するネットワーク・インターフェースと仮想マシン構成ファイル内のネットワーク関連の定義を修正して、仮想マシンが正常に起動できるようにする必要があります。
仮想イメージ内のネットワーク情報を編集する前に、仮想イメージ外部のネットワーク構成ファイルを変更することが必要です。
- VMware ESX server V3 の場合、 .vmx ファイルの uuid 行を編集または削除して、元の物理コンピューターのIDを削除する必要があります。
-
XENを使用している場合、
構成ファイル内のネットワーク・アダプターのMACアドレスに正しい値を割り当ててください。MACアドレスを変更するには、イメージ
vif=[ 'mac=00:16:3e:84:8b:01' ]の構成ファイルを変更して最後の6桁(16 進数)を選択します。各仮想マシンは固有のMACアドレスを持たなければならず、各クローンに固有の MACアドレスを指定しないと、ネットワーク問題が発生することがあります。
次に、クローン化された仮想マシン内のホスト名とネットワーク設定を構成する必要があります。例えば、以下のステップに従って SUSE Enterprise Server V10 ゲスト・オペレーティング・システムを構成します。
- 新しいホスト名、ドメイン、IP情報に [/etc/hosts] ファイルを変更します。
- 短いホスト名のみを含むように [/etc/HOSTNAME] を設定します。
- routes ファイル [/etc/sysconfig/network/routes] で定義されたデフォルト・ゲートウェイを変更します。
-
[/etc/sysconfig/network/ifcfg-eth*] を編集することによりネットワーク構成を修正します。このファイルは、
ifcfg-eth0またはifcfg-eth-id-00:16:3e:84:8b:01とネーミングされていることがあります。- BOOTPROTO='static' を使用して静的なIP構成を選択します。
-
必要に応じて、その他のネットワーク設定を変更します。例えば、
IPADDR='192.168.0.1'です。 -
DHCLIENT_SET_HOSTNAME='myNewHostname'行を追加します。
WebSphere Application Serverのカスタマイズ
ConfigWASカスタマイズ・スクリプトを使用して、新しい環境で仮想イメージ・テンプレートをインスタンス化します。関連するステップはブランク・テンプレート、柔軟テンプレート、および固定テンプレートとも同じですが、異なるパラメーターもあります。スクリプトは、コンソールからまたは XMLパラメーター・ファイルから入力値を受け入れるように設計されています。XML入力パラメーター・ファイルがなければ、スクリプトがコンソールからの入力を求めるプロンプトを出します。
ネットワークが正常に構成されたら、perl ConfigWAS マンドを使用して仮想イメージ内の ConfigWASスクリプトを呼び出します。コンソール上のプロンプトに従って、構成オプションを作成します。不明な点があれば、
[h]
または
[help]
と入力すると、ヘルプを表示できます。
このプロセスを自動化するには、提供されている例に基づいて myfile.xml ファイルを作成します。カスタマイズ・スクリプトを呼び出したら、コマンド行オプション perl ConfigWAS -type [blank|flexible|fixed] -xml myfile.xml を追加します。すると、プロンプトが出ずにサンプル・スクリプトが実行されます。
XMLファイルにはインストール値が含まれます。可能なXMLパラメーター名と値のペアを以下に示します。特定のオプションを持つパラメーターは、value="(option1|option2|option3)" のように括弧で囲まれリストされています。括弧は、XMLを実際に生成するときに削除する必要があります。特定の構成のみに必要なパラメーターもあります。(EnableSecurity オプションは WebSphere Application Server V6.1 でのみ有効であることに注意してください。)
<xml solution-name="WAS">
<software-resource name="WAS_V_6">
<parameter name="ConfigureType"
value="(DeploymentManager|ManagedNode|StandaloneNode|Cell)"/>
<parameter name="DMHostName" value="dmgrhost"/>
<parameter name="DMDomainName" value="ibm.com"/>
<parameter name="EnableSecurity" value="(y|n)"/>
<parameter name="SecureAdminId" value="wsadmin"/>
<parameter name="SecureAdminPassword" value="password"/>
<parameter name="ImportProfile"
value="/path/to/ApplicationsProfiles.car"/>
</software-resource>
</xml> |
同じイメージ・テンプレートを使用して、3 つの仮想マシンにわたる WebSphere Application Server ND 環境を作成するには、テンプレートを 2 回 (デプロイメント・マネージャーに対して 1 回、各管理対象ノードに対して 1 回) コピーします。図3では、2つの管理対象ノードで柔軟テンプレートをアクティベイトするための XMLファイルの例を示します。これらと同じステップに従ってXMLファイルを適切に変更し、その他のトポロジーを作成します。
図3 柔軟なテンプレートを使用した WebSphere Application Server Network Deployment クラスターのデプロイ
- テンプレートから新しい仮想マシン(vm1) をコピーします。
- vm1で新しいネットワーク環境を開始してセットアップします。
- リスト1のXMLファイルを使用してConfigWASスクリプトを実行します。このステップはvm1の新しいホスト名を取得し、vm1のデプロイメント・マネージャー・プロファイルのホスト名をオフラインで変更し、vm1でデプロイメント・マネージャーを開始します。
- テンプレートから新しい仮想マシン(vm2) をコピーします。
- vm2で新しいネットワーク環境を開始してセットアップします。
- リスト2のXMLファイルを使用してConfigWASスクリプトを実行します。このステップでは、vm2の新しいホスト名を取得し、vm2のデフォルト・ノードのホスト名をオフラインで変更し、管理対象ノード1としてのアプリケーションを含む vm2のデフォルト・ノードをdmgrにフェデレートします。このステップでは、次にvm2のホスト名に従ってネットワーク・デプロイメントの管理対象ノード1のノード名を変更し、管理対象ノード1からリモートでネットワーク・デプロイメントにクラスターを作成し、アプリケーション・モジュールを新しいクラスターに再マップし、管理対象ノード1からリモートでクラスター・メンバーを作成し、管理対象ノード1でサーバー/アプリケーションを開始します。
- テンプレートから新しい仮想マシン(vm3)をコピーします。
- vm3で新しいネットワーク環境を開始してセットアップします。
- リスト2のXMLファイルを使用してConfigWASスクリプトを実行します。このステップでは、vm3の新しいホスト名を取得し、vm3のデフォルト・ノードのホスト名をオフラインで変更し、管理対象ノード2としてのアプリケーションを含むvm3 のデフォルト・ノードをdmgrにフェデレートします。このステップでは、次にvm3のホスト名に従ってネットワーク・デプロイメントの管理対象ノード2のノード名を変更し、管理対象ノード2からリモートでクラスター・メンバーを作成し、管理対象ノード2でサーバー/アプリケーションを開始します。
リスト1 Dmgrのカスタマイズ・ファイル
<xml solution-name="WAS">
<software-resource name="WAS_V_6">
<parameter name="ConfigureType" value="DeploymentManager"/>
</software-resource>
</xml> |
リスト2 管理対象ノードのカスタマイズ・ファイル
<xml solution-name="WAS">
<software-resource name="WAS_V_6">
<parameter name="ConfigType" value="ManagedNode"/>
<parameter name="DmgrHostName" value="wasdm"/>
<parameter name="DmgrDomain" value="ibm.com"/>
</software-resource>
</xml> |
完了すると、2ノードで構成されるクラスター・トポロジーの一例が作成されます。固定トポロジーの場合もこれらの同じステップを実行しますが、フェデレーションとクラスターはすでに実行されているので、実行される処理は大幅に少なくなります。
デプロイメント・マネージャーと管理対象ノードを同じ仮想マシン内に作成する ConfigWAS "Cell" オプションを選択すると、スクリプトはノード追加コマンドとサーバー始動コマンドを実行する前にデプロイメント・マネージャーを開始します。
保守を容易にするために、VMware Virtual Appliance のベスト・プラクティスとして、仮想アプライアンス開発者が読み取り専用アプライアンス・ファイルを、構成ファイルやアプリケーション・ファイルなどのユーザーが変更するファイルから分離することをお勧めします。WebSphere プロファイルは、WebSphere インストール・バイナリーにかかわらず、ホスト名固有のデータなどのユーザー・ファイル (アプリケーションおよび構成データ) を別のプロファイル・ディレクトリーに分離するので、簡単に分離できます。
このベスト・プラクティスを実装するため、テンプレート・イメージは 2 台のディスクにセットアップし、インスタンス化プロセス時に作成されたプロファイルは 2 番目の論理ディスクに作成します。これにより、カスタマイズ・プロセス時またはデプロイメント後に行われた変更に影響を与えることなく、オペレーティング・システムまたはテンプレート・イメージ内の WebSphere バイナリーに修正を適用して、これらの更新をデプロイできます。
制限: WebSphere Application Server 保守パッケージは、既存のプロファイルを変更することが必要な場合があり、その場合は追加ステップが必要です。
2台の論理ディスクにわたって WebSphere Application Server 仮想イメージ・テンプレートを作成するには、WebSphere Application Server とアプリケーションをインストールする前にこれらの変更を行います。
-
アプリケーションと WebSphere プロファイルを格納するのに十分なディスク・スペースを持つ、2 番目の空の仮想ディスクを最初に作成します。このステップはハイパーバイザー固有なので、論理ディスクを構成するためのハイパーバイザーの指示に従います。「websphere.disk」および「profiles.disk」という 2 台の論理ディスクを備えた XEN 仮想マシンの構成ファイルの例を以下に示します。
図4 2台の論理ディスクを備えたXEN仮想マシンのVMプロファイル構成
-
空の論理ディスクを作成し、仮想マシン・プロファイルを構成した後、仮想マシン内のファイル・システム構成を更新する必要があります。WebSphere プロファイルのインストール・ディレクトリー /opt/IBM/WebSphere/AppServer/profiles を 2 番目の論理ディスクにマップします。ここでも、特定の構文はオペレーティング・システムとハイパーバイザーによって決まります。SUSE Enterprise Server V10をゲスト・オペレーティング・システムとして使用した XEN 仮想マシンの構成ファイル (/etc/fstab) の例を示します。
図5 2台の論理ディスクを備えたXEN仮想マシンのファイル・システム構成
サーバーの仮想化は、素早いインスタンス化のためのテンプレート・イメージを作成して、新しい環境を迅速にプロビジョニングする機能を提供します。WebSphere Application Server V6 プロファイル機能によって、仮想テンプレートを非常に簡単に作成およびインスタンス化できます。スクリプトを使用して、WebSphere Application Server のカスタマイズを自動化し、新しい WebSphere 環境を迅速にプロビジョンできます。
| 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|---|---|---|
| コード・サンプル | ConfigWAS_WIN.zip | 21 KB | HTTP |
| コード・サンプル | ConfigWAS_LINUX.tar | 80 KB | HTTP |
学ぶために
-
Automating deployment and activation of virtual images (US)
-
Comment lines: Couldit be time to virtualize? (US)
-
System management for WebSphere Application Server V6: Easier system management with profiles (US)
-
IBM developerWorks WebSphere application server zone (US)
製品や技術を入手するために
-
IBM Installation Factory for WebSphere Application Server V6.0 releases (US)
-
IBM Installation Factory for WebSphere Application Server V6.1 releases (US)
-
Download WebSphere Application Server V6.1 trial version (US)
Ruth Willenborgは IBM の WebSphere Technology Institute のシニア・テクニカル・スタッフ・メンバーで、仮想化について研究しています。この業務に就く前は、WebSphere Application Server パフォーマンス分析、パフォーマンス・ベンチマークおよびパフォーマンス・ツール開発を担当する WebSphere Performance チームのマネージャーでした。彼は、IBM で 20 年を超えるソフトウェア開発の経験があります。「 Performance Analysis for Java Web Sites (Addison-Wesley, 2002)」の共著者です。
Qingbo Wang は、IBM China Research Laboratory の Distributed Infrastructureチームでリサーチ・スタッフ・メンバーを務めています。分散システムとネットワーキングに常に技術的な関心を持ち、現在は仮想化技術を使用した自動化システム管理に従事しています。
David Gilgen は、将来の技術を研究しているWebSphere Developmentのシニア・エンジニアであり、25 年を超える IBM でのソフトウェア開発の経験があります。彼はまた、WebSphere 内部開発環境に仮想化を組み込む方法も研究しています。