この章では、N1 Grid Service Provisioning System プランの XML スキーマについて説明します。次のトピックを説明します。
特に断りのない限り、この章で説明する属性は、コンポーネントスコープの置換変数を参照できません。
XML スキーマアーキテクチャーの概要は、第 1 章「XML スキーマの概要」を参照してください。
プラン全体は、<executionPlan> 要素によって包含されます。
プランは、単純プランまたは複合プランのどちらかです。単純プランは、ターゲットサーバーの特定セットに対して実行されるステップの連続リストです。単純プランはほかのプランを含まず、ほかのプランを呼び出すこともありません。複合プランは、ほかのサブプランだけから構成されています。各単純サブプランは、異なる対象セットで実行可能であるため、複合プランは直接の対象とはなりません。
<executionPlan> 要素には次の子要素があり、以下に示す順序で出現する必要があります。これらの子要素は、独自の子要素や属性 (両方も可能) を持つことができます。
<executionPlan> 要素には次の属性があります。
http://www.sun.com/schema/SPS |
xmlns:xsi – 必須文字列で、次の値を持っています。
http://www.w3.org/ 2001/XMLSchema-instance |
xsi:schemaLocation – オプション文字列で、推奨値は次の値です。
http://www.sun.com/schema/SPS plan.xsd |
path – pathName 型のオプション属性で、実行プランの絶対パス。この属性を指定しない場合、ルートパス (/) が使用されます。値は、プランが保存された時点で存在するフォルダを指定する必要があります。
version – schemaVersion 型の必須属性で、使用されているプランスキーマのバージョン。現在許可されている値は 5.0 のみです。
<paramList> 要素は、<executionPlan> 要素のオプションの子です。この要素は、プラン内に含まれるステップおよび参照されるコンポーネントが使用するパラメータのリストを宣言するために使用されます。この要素を指定する場合、この要素は 1 回しか出現できません。
このプランが最上位のプランとして実行される場合、呼び出し側はこのリストで宣言された全パラメータの値を入力するように求められます。このプランがほかのプラン内で <execSubplan> ステップの結果として呼び出される場合、呼び出し側のプランは、デフォルト値を持たない <paramList> で宣言されたすべてのパラメータの値を明示的に渡す必要があります。
<paramList> 要素には 1 つの必須子要素 <param> があり、これはプランパラメータの宣言です。この宣言には、名前、プロンプト、デフォルト値が含まれます。宣言する必要があるパラメータごとに、1 つの <param> 要素を指定できます。
<param> 要素はプラン <paramList> 要素の子であり、プラン内で使用するパラメータの宣言に使用されます。
<param> 要素には次の属性があります。
name – identifier 型の必須属性で、プランパラメータの名前です。この名前は、最上位のすべてのプランパラメータおよびプラン変数にわたって一意でなければなりません。
prompt – 文字列のオプション属性で、パラメータの値を入力するよう求める際のユーザーインタフェースで表示されます。この属性を指定しないと、name の値が使用されます。
default – 文字列のオプション属性で、パラメータのデフォルト値。このデフォルト値は、セッション変数への参照を含むことはできません。
displayMode – オプション属性で、パラメータの表示モードを指定します。次の有効な値が使用できます。
PASSWORD – ユーザー指定の値が隠されます。つまりパスワードは表示されないか、アスタリスクに置き換えられます。
BOOLEAN – チェックボックスを使用してパラメータが指定されます。
CLEAR – 入力時に値が表示されます。
値が CLEAR または BOOLEAN である場合、入力時に安全に表示されます。この属性を指定しないと、値は CLEAR になります。
<varList> 要素は <executionPlan> 要素と <inlineSubplan> ステップのオプションの子です。<inlineSubplan> ステップの詳細については、「<inlineSubplan> ステップ」を参照してください。 <varList> 要素は、プラン内に含まれるステップおよび参照されるコンポーネントが使用する変数のリストを宣言するために使用されます。これらの変数の値は宣言時に定義され、再定義は行えません。この要素を指定する場合、この要素は 1 回しか出現できません。
<varList> 要素には 1 つの必須子要素 <var> があり、これはプラン変数の宣言です。宣言には名前と値が含まれます。宣言する必要がある変数ごとに、1 つの <var> 要素を指定します。
<var> 要素は plan <varList> 要素の子であり、プラン変数 (名前や値など) を宣言するために使用されます。
この要素には次の属性があります。
name – identifier 型の必須属性で、ローカル変数の名前。この名前は、包含する <varList> 内のすべての変数にわたって一意でなければなりません。最上位の <executionPlan> に関連付けられた変数は、プランパラメータにおいても一意でなければなりません。
default – 文字列である必須属性で、プラン変数のデフォルト値。この値には、以前に宣言されているプラン変数、セッション変数、およびプランパラメータへの参照を含めることができます。このプランが単純プランの場合には、ターゲットホスト属性およびインストール済みコンポーネント変数への参照を含めることができます。
<simpleSteps> 要素は <executionPlan> 要素および <inlineSubplan> ステップのオプションの子です。<inlineSubplan> ステップの詳細については、「<inlineSubplan> ステップ」を参照してください。<simpleSteps> 要素には、1 つ以上の「共通」ステップまたは「単純プラン専用」ステップが含まれます。<simpleSteps> 要素の存在は、そのプランが (複合プランではなく) 単純プランであることを示します。この要素を指定する場合、この要素は 1 回しか出現できません。
実行時にこの要素内のステップは、呼び出し側によって選択された一連の論理ターゲットホストで順次実行されます。このようなホストは初期ターゲットホストと呼ばれます。このプランの実行時に、そのステップは、初期ホスト以外のホストで実行されるようリダイレクトすることができます。プランが実際に実行されるホストは現在のターゲットホストと呼ばれます。ステップがリダイレクトされない場合、現在のホストと初期ホストは同じになります。初期ホストは、現在のホストと同じように、仮想ホストと物理ホストのどちらにもなれます。物理ホストは現在のホストのルート親ホストで、現在のホストが物理ホストである場合、現在のホストと同じです。
<simpleSteps> 要素の子は、1 つ以上の「共通」ステップまたは「単純プラン専用」ステップから構成されています。これらのステップには、プランのパラメータおよび変数への参照を含めることができます。詳細は、「単純プラン専用のステップ」を参照してください。
<simpleSteps> 要素には次の属性があります。
executionMode – オプション属性で、包含した複数のステップをターゲットホストに対して順次実行するか同時に実行するかを示します。次の値が有効です。
PARALLEL
SERIES
この属性を指定しないと、値は PARALLEL になります。
limitToHostSet – オプション属性で、当該プランの有効な対象と見なされるホストを含むホストセットの名前を指定します。
この属性を指定しないと、すべてのホストが有効な対象と見なされます。すべてのホストを有効な対象としない場合、ユーザーが指定する対象は、指定されたホストセットに含まれるホストのサブセットでなければなりません。指定されたホストセットに含まれないホストが対象内に存在する場合、プランで実行時エラーが発生します。サポートされている既存のホストセットに対応しない名前を指定した場合も、プランで実行時エラーが発生します。指定されたホストセットがプラグインにより定義されたホストである場合、pluginName は、ホストセット名に対する接頭辞 ( pluginName# hostSetName など) である必要があります。このようなプラン実行時エラーは、プリフライトが始まる前に検証の段階で報告されます。
<compositeSteps> 要素は <executionPlan> 要素および <inlineSubplan> ステップのオプションの子です。<inlineSubplan> ステップの詳細については、「<inlineSubplan> ステップ」を参照してください。<compositeSteps> 要素には、1 つ以上の「複合プラン専用」ステップが含まれます。<compositeSteps> 要素の存在は、そのプランが複合プランであることを示します。<compositeSteps> 要素に属性は含まれません。この要素を指定する場合、この要素は 1 回しか出現できません。
<compositeSteps> 要素の子は、1 つ以上の「複合プラン専用」ステップから構成されます。これらのステップには、プランのパラメータおよび変数への参照を含めることができます。詳細は、「複合プラン専用のステップ」を参照してください。
この節では、複合プラン内でだけ使用できるステップを説明します。複合プラン内に含まれる一部のステップの属性は、プラン変数およびプランパラメータの参照を含むことができます。
<execSubplan> ステップは、ほかのプランを実行します。<execSubplan> ステップは、<compositeSteps> 要素の子としてしか指定できません。
<execSubplan> ステップには、1 つのオプション子要素 <argList> があり、これは呼び出されたプランに渡す引数の一覧です。呼び出されたプランの <paramList> セクション内の、デフォルト値が宣言されていないパラメータごとに、この <argList> によって宣言された対応する引数が存在しなければなりません。詳細は、「<argList> 要素」を参照してください。この要素を指定する場合、この要素は 1 回しか出現できません。
<execSubplan> ステップには次の属性があります。
planName – entityName 型の必須属性で、実行するプランの名前。このステップを実行する際には、この名前を持つ、対応する最上位の <executionPlan> を指定する必要があります。この名前でインラインサブプランを参照することはできません。
planPath – pathReference 型のオプション属性で、実行するプランのパス。この属性を指定しないと、包含するプランのパスが使用されます。
planVersion – Version 型のオプション属性で、実行するプランのバージョンです。この属性を指定しないと、指定されたプランの最新バージョンが使用されます。
<inlineSubplan> ステップは、連続した複数のステップを実行します。このステップは、<compositeSteps> 要素の子としてしか指定できません。
<inlineSubplan> ステップは <execSubplan> ステップに類似していますが、<execSubplan> ステップは実行する外部プランの名前を指定するのに対し、<inlineSubplan> ステップは子要素として実行するプランを直接包含します。
インラインサブプランと最上位プランの大きな違いは、インラインサブプランは別個の名前付きエンティティとしては保存されない点です。そのためインラインサブフランは、<execSubplan> ステップでは外部から参照することができません。最上位プランは別個の名前付きエンティティであり、<execSubplan> ステップからの参照が可能です。
インラインサブプランは、コンテンツが簡潔で、呼び出し側プランのコンテキストとロジックに直接結合されている場合に便利です。このような場合以外は、独立したプランとして使用しても無意味です。呼び出し側プランのコンテキストとロジックに直接結合されている場合は、自己包含した 1 つのユニットに全ステップを含めるとプランのメンテナンスが容易になるほか、プランが読みやすくなります。
最上位プランと異なり、インラインサブプランはパラメータを宣言できません。インラインサブプランは、包含するすべてのプランのパラメータと変数を暗黙に継承します。インラインサブプランがそれ自身にローカルな変数を別途宣言することは可能であり、これにより包含するプランの変数とパラメータを隠蔽できます。サブプラン変数と包含するプランの変数が同じ名前を持つと、サブプラン変数が包含するプランの変数を隠蔽します。このようなケースでは、そのステップで使用できるのは一番内側のサブプランによって宣言された変数の値だけです。
<inlineSubplan> ステップはオプションの <varList> から構成され、インラインサブプランが単純プランであるか複合プランであるかに基づき、1 つの追加子要素 <simpleSteps> または <compositeSteps> がそのあとに続きます。
<inlineSubplan> ステップには次の子要素があります。
<varList> – オプション要素で、インラインサブプラン内で使用するプラン変数の一覧。この要素を指定する場合、この要素は 1 回しか出現できません。
<simpleSteps> – オプション要素で、単純ステップの一覧を含みます。この <simpleSteps> 要素または <compositeSteps> 要素の一方のみが存在できます。この要素を指定する場合、この要素は 1 回しか出現できません。
<compositeSteps> – オプション要素で、複合ステップの一覧を含みます。この <compositeSteps> または <simpleSteps> 要素の一方のみが存在できます。この要素を指定する場合、この要素は 1 回しか出現できません。
<inlineSubplan> ステップには次の属性があります。
planName – entityName 型の必須属性で、インラインサブプランの特定に使用される名前。この名前は主に表示目的で使用され、ほかのプラン (インラインまたは最上位) の名前と区別する必要はありません。
この節では、単純プラン内でだけ使用できるステップを説明します。プラン内に含まれるステップは、そのプランによって宣言された変数を参照できます。またこれらのステップは、すべての包含プランの隠蔽されていないあらゆる変数とパラメータも参照できます。
<install> ステップは、コンポーネントをターゲットホストにインストールします。これにより、関連付けられたコンポーネントの指定された <installSteps> 要素のステップが実行されます。 このステップは、<simpleSteps> 要素の子としてしか指定できません。
<install> ステップには次の子要素があります。
<argList> – オプション要素で、<installSteps> ブロックに渡す引数の一覧。この要素を指定する場合、この要素は 1 回しか出現できません。詳細は、「<argList> 要素」を参照してください。
リポジトリコンポーネントターゲッター – 必須要素で、インストールするコンポーネントを特定します。詳細は、「リポジトリコンポーネントターゲッター」を参照してください。
<install> ステップには entityName 型の 1 つの必須属性blockName があり、これは対象コンポーネント内で実行されるインストールブロックの名前です。
<uninstall> ステップは、ターゲットホスト上に現在インストールされているコンポーネントのリソースをアンインストールします。これにより、関連付けられたコンポーネントの指定された <uninstallSteps> 要素のステップが実行されます。このステップは、<simpleSteps> 要素の子としてしか指定できません。
<uninstall> ステップには次の子要素があります。
<argList> – オプション要素で、<uninstallSteps> ブロックに渡す引数の一覧。この要素を指定する場合、この要素は 1 回しか出現できません。詳細は、「<argList> 要素」を参照してください。
installed component targeter – 必須要素で、アンインストールするコンポーネントを特定します。詳細は、「インストール済みコンポーネントターゲッター」を参照してください。
<uninstall> ステップには entityName 型の 1 つの必須属性 blockName があり、これは対象コンポーネント内で実行するアンインストールブロックの名前です。