N1 Grid Service Provisioning System 5.0 XML スキーマリファレンスガイド

コンポーネントのインストール専用のステップ

この節では、コンポーネントのインストールブロック内でしか使用できないステップを示します。

<deployResource> ステップを除くすべてのステップは、単純コンポーネントと複合コンポーネントの両方で使用できます。<deployResource> ステップは、単純コンポーネントのみが使用できます。

<createDependency> ステップ

このステップは、ほかのコンポーネントに対する現在のコンポーネントの永続的な依存性を作成します。このステップは、その実行時にまず指定された基準に一致するインストール済みコンポーネントが存在しないかチェックします。そのようなコンポーネントが存在しない場合、このステップは停止します (この動作は <checkDependency> ステップに同じ)。一致するコンポーネントが見つかると、一致したコンポーネント (依存先コンポーネント) と呼び出しコンポーネント (依存元コンポーネント) の間に永続的な依存性が作成されます。

複数のインストール済みコンポーネントが基準に一致する場合 (インストールパスを指定しないとこのような状況となり得る) は、最新のものが依存先として使用されます。永続的なコンポーネントは、ステップで指定される名前で作成されます。 この名前は、インストールブロックで作成されるすべての依存性間で一意のものでなければなりません。

作成された永続的な依存性は、依存コンポーネントがアンインストールされるまで持続します。永続的な依存性を作成したあとで後続のステップで依存コンポーネントのインストールが停止する場合、依存性はこの停止時にただちに削除されます。

個々のコンポーネントは、<createDependency> ステップをほかのコンポーネントごとに実行することにより任意の数のコンポーネントに依存できます。依存性が満たされない場合、実際の処理が行われる前にインストールが停止するように、<createDependency> ステップはインストールブロックの最初のステップに指定する必要があります。

<createDependency> ステップには 1 つの必須子要素があり、この要素が依存先コンポーネントを特定します。その子要素はインストール済みコンポーネントターゲッターです。詳細は、「インストール済みコンポーネントターゲッター」を参照してください。

<createDependency> ステップの属性

<createDependency> ステップには identifier 型の 1 つの必須属性 name があり、これは作成する依存性の名前です。この名前は、現在のコンポーネントによって作成されるすべての依存性の間で一意のものでなければなりません。

<createDependency> ステップのアンインストールについて

コンポーネントのアンインストールは、そのコンポーネントに対して依存するインストール済みコンポーネントが存在する場合は行えません。コンポーネントのアンインストールブロックが検出された場合で、そのコンポーネントを依存先とする 1 つ以上の永続的な依存性が存在するときは、アンインストールはただちに停止します。

しかし、コンポーネント A によってコンポーネント B のアンインストールが進行している場合、A によって作成された B に対する依存性が B のアンインストールを防止することはなく、この依存性は B が正常にアンインストールされた時点で暗黙に削除されます。

依存先コンポーネントは、<dependantCleanup> ブロックを使用してその依存元 (dependant) をアンインストールするアクションを指定できます。

<createDependency> ステップの再インストールについて

同じホストとインストールパス上にインストールされた同じバージョンツリー内に既存コンポーネントが存在する場合、コンポーネントのインストールは、再インストールと見なされます。コンポーネントの再インストールが行えるのは、その新しいコンポーネントがオリジナルコンポーネントのすべての依存元に適合する場合だけです。コンポーネントは常に同じバージョンのコンポーネントで再インストールできます。ただし、永続的な依存性を作成した <createDependency> ステップ内で指定した制約に、新しいバージョンが適合する場合には、異なるバージョンで再インストールすることもできます。

コンポーネントの単純インストールブロックが検出された場合は、インストールによって既存のインストールが上書きされるかどうかを、プロビジョニングソフトウェアが判別します。上書きされる場合、プロビジョニングソフトウェアは、既存のコンポーネントを依存先としている永続的な依存性をすべて検出し、インストールされる新しいコンポーネントについても依存性の制約が適合するかを検証し直します。適合しないものがある場合、新しいコンポーネントのインストールは失敗し、オリジナルコンポーネントがインストールされたままとなります。

すべて適合する場合、新しいコンポーネントがそのインストールを正常に完了した時点で、当該コンポーネントがすべての永続的な依存性の新しい依存先となります。オリジナルのコンポーネントはアンインストールされたと見なされ、そのコンポーネントの依存元であったすべての永続的な依存性が削除されます。つまり、新しいコンポーネントは必要に応じて依存性を作成し直す必要があります。

<createDependency> ステップの命名規則

依存性の名前は、「 xxx2 yyy」という形式に従います。xxx は依存元コンポーネントの名前、 yyy は依存先コンポーネントの名前を示します。

たとえば、管理対象サーバー WebLogic はその管理サーバーに対して server2domain という依存性を持ち、その包含クラスタに対して server2cluster という依存性を持つ例が考えられます。この慣例は依存関係の状態を自己記録として表現するのに便利であり、特定のコンポーネントの依存先関係と依存元関係の両方を示すことができます。

<createSnapshot> ステップ

このステップは、インストール中のコンポーネントの現在のインストール状態のスナップショットを作成します。インストールブロックには、任意の数の <createSnapshot> ステップを指定できます。

<createSnapshot> ステップは引数の引き渡しをサポートしないため、必要なパラメータを指定されたスナップショットブロックで宣言することはできません。引数の引き渡しがサポートされないのは、この機能をサポートすると生成されたスナップショットに対してあとで比較が行われる際に引数の収集と引き渡しのサポートも必要となるためです。

複合コンポーネントに対して行われる比較には、そのコンポーネントにより直接作成されるすべてのスナップショットが含まれます。またこのような比較には、入れ子になったすべてのコンポーネント参照の再帰的なインストールによって作成されたスナップショットのツリー一式も含まれます。しかし、最上位のコンポーネント参照に関連付けられたスナップショットは考慮されません。そのため、<addSnapshot> キャプチャ命令を使用して、複合コンポーネントのスナップショット内にそのようなスナップショットを明示的に含める必要があります。

また、入れ子になったコンポーネントは相互に依存していることがあり、このような場合にはそれらのコンポーネントがすべてインストールされるまでスナップショットのキャプチャを延期する必要があります。相互依存の関係にある例として、ディレクトリを配備する入れ子コンポーネントと、そのディレクトリにファイルを配備する入れ子コンポーネントが挙げられます。このような相互依存の場合、包含コンポーネントは、インストール中にスナップショットを作成しないように入れ子コンポーネントに指示するパラメータの引渡し、または特殊なインストールブロックを使用して、入れ子コンポーネントをインストールする必要があります。その後、<addSnapshot> 命令を使用して、包含コンポーネントのスナップショットブロックに、入れ子コンポーネントの適切なスナップショットを含めるようにします。

<createSnapshot> ステップの属性

<createSnapshot> ステップには entityName 型の 1 つの必須属性 blockName があり、これは当該コンポーネント内で実行するスナップショットブロックの名前です。

<install> ステップ

このステップは、ターゲットホストにコンポーネントをインストールします。このステップを使用すると、対象コンポーネントの指定されたインストールブロックのステップが実行されます。

このステップの構文は、コンポーネントターゲッターを省略できる (ターゲッターを省略すると <thisComponent> が指定されたと想定される) 点を除き、単純プラン <install> ステップ (<install> ステップ」を参照) で指定する場合と同じです。

コンポーネント内で使用される場合、このステップは同一コンポーネント内のほかのインストールブロックの呼び出しに使用されます。この場合、一番外側のインストールブロックがその実行を完了するまで、コンポーネントのインストールが完了したとは見なされません。また、ほかのローカルインストールブロックの呼び出し対象がほかのホストに変更された場合でも、コンポーネントは最初のインストールステップの対象となったホストにインストールされたとしか見なされません。

このステップは、参照先コンポーネントをインストールする目的で複合コンポーネント内でも使用できます。参照先コンポーネントは、包含コンポーネントのインストール先以外のホストにもインストールできます。包含コンポーネントのインストールが失敗する場合、この失敗以前にインストールが正常に行われている入れ子になった参照先コンポーネントはすべて、アンインストールブロックを実行することなく暗黙にアンインストールされます。しかし、失敗以前にインストールが正常に行われた最上位の参照先コンポーネントはインストールされたままとなります。

<deployResource> ステップ

このステップは、包含コンポーネントのリソースを配備します。このステップは、単純コンポーネントのインストールブロックでのみ使用可能です。属性または子要素はありません。

deployMode=ADD_TO であるディレクトリ型リソースは、それが包含している各ファイルをコピーし、ディレクトリ構造を維持します。また、必要に応じて新しいディレクトリが作成されます。既存のディレクトリの構造とコンテンツは (リソースコンテンツのコピーを除き) 変化しません。 個々のファイルアクセス許可と所有権は、適宜更新されます。

deployMode=REPLACE であるディレクトリ型リソースは、配備前に既存ディレクトリが再帰的に削除されることを除き、deployMode=ADD_TO と同様に扱われます。

ほかのリソースはすべてコピーされ、続いてアクセス許可と所有権が適宜更新されます。構成可能としてチェックインされたリソースには、コピーされる前に変数置換が行われます。 構成可能リソースは、リソースが宣言されているコンポーネントにアクセス可能な任意の変数を参照できます。