アプリケーションをコンポーネントとしてモデル化し、さまざまな環境で動作するようにカスタマイズできます。
たとえば、データベースアプリケーションを使用してオンラインカタログ販売を管理するとします。運用環境にアプリケーションを配備する前に、テスト環境でアプリケーションをテストします。この 2 つの環境で同じアプリケーションを実行しますが、構成は異なります。テスト環境にアプリケーションを配備する場合は、テスト用のデータベースを使用します。運用環境にアプリケーションを配備する場合は、運用版のデータベースを使用します。
使用するデータベースなど、アプリケーションに関する構成情報は、構成ファイルに格納できます。各環境をサポートするには、これらの構成ファイルをカスタマイズする必要があります。構成ファイルには、コンポーネントの配備時に変数設定値に置き換えられる置換変数を含めることができます。
置換変数は構成ファイルで使用できるだけではなく、プランとコンポーネントでも使用できます。たとえば、アプリケーションをインストールするディレクトリを置換変数で指定できます。プロビジョニングシステムでは、配備環境ごとに個別の変数設定を定義して管理できます。
構成ファイル、プラン、またはコンポーネント中の置換変数参照により、次の種類の値を取得できます。
ユーザー定義の値
名前、ラベルなど、コンポーネント固有の値
IP アドレスなど、ターゲットホスト固有の値
ユーザー定義の、プロビジョニングシステムのホスト固有の値
セッション変数の値
インストール済みコンポーネントに関連付けられた値
プロビジョニングシステムでは、configuration generation engineを使用して、置換変数参照を適切な変数設定値に置き換えます。このエンジンは、ホストリポジトリおよびコンポーネントリポジトリと対話し、プランを実行するたびに値を解決してコンポーネントを配備します。
プロビジョニングシステムには変数設定を格納しておくためのリポジトリがあるので、あとで値を再利用できます。コンポーネントのインストールとプランの実行に使用された変数設定を表示すると、変数の状態を調べられます。インストール済みコンポーネントとの比較実行時に置換変数の状態を調べる場合にも、このリポジトリを使用します。
複数のホストに同じアプリケーションを配備するプランを実行する場合は、構成の生成を使用することによって、置換変数を各ホストに適した値に自動的に置き換えることができます。
その場合、コンポーネントに置換変数定義を追加します。置換変数定義はたとえば、アプリケーションのインストール先ディレクトリを設定する 1 つの手段として使用できます。プロビジョニングシステムを使用することにより、次のように、各ターゲットホスト上で、アプリケーション配備に関してそれぞれ異なる変数設定を定義して管理できます。
コンポーネントのバージョンごとに、独自の変数定義を宣言できます。
コンポーネントのバージョンごとに、独自の変数設定 (前のバージョンからインポートされることもある) があります。
任意の変数設定を使用して各コンポーネントをインストールできます。
アプリケーションのインストール時にプロビジョニングシステムが置換する値は、次のいずれかになります。
ユーザー指定の値
名前、ラベルなど、コンポーネント固有の値
インストール済みのコンポーネントに関連付けられた値
セッション変数の値
IP アドレス、ユーザー定義のホスト変数など、ターゲットホスト固有の値
変数が置換されるのは、ターゲットホスト上でターゲットステップが実行されたときです。ステップはターゲットホストにインストールする、またはインストール済みのプランまたはホストに組み込めます。ターゲットホストとコンポーネントに関連付けられた状態がある場合は、その状態に基づいて個々の置換変数値が決定されます。状態に含まれる可能性がある情報は、次のとおりです。
ターゲットコンポーネント – 処理の実行対象となるコンポーネント
ターゲットホスト – ターゲットステップが実行されている現在のホスト
ターゲット変数設定のソース – コンポーネントのインストール時に定義されていたデフォルト値を書き換える、名前と値の組み合わせのコレクション
ローカル変数 – 囲い込みブロックまたはプランで宣言した変数など、ターゲットステップそのものに含まれるあらゆる変数
変数置換エンジンは、String 形式または Reader 形式であれば、あらゆるテキストベースの入力ソースを処理します。ただし、実際には入力ソースとして使用されるのは、次のエンティティだけです。
構成タイプのリソースファイル
CLI コマンドに対する入力 (オンデマンド方式で変数置換を実行する )
コンポーネント属性とプラン属性の一部 (<installSteps> 要素の defaultInstallPath 属性、<execNative> ステップの command 属性など)
『N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド』の第 2 章「コンポーネントと単純プランにより使用される共有スキーマ」、『N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド』の第 3 章「コンポーネントのスキーマ」、および『N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド』の第 4 章「プランのスキーマ」を参照してください。