N1 Service Provisioning System 4.1 リファレンスガイド

置換できる変数の種類

コンポーネントの作成時または編集時には、事前定義した変数定義を使用したり、ユーザーのニーズに合ったカスタム定義を作成したりすることができます。

変数の置換は、以下の構文で定義します。


:[variable]

ここで、variable はホスト固有の値と置換するパラメタです。

コンポーネント内で定義できる変数は、基本的に 4 種類あります。

単純置換変数

単純置換は、後で同じコンポーネント内で参照する変数を定義するために使用します。

単純置換変数は、以下の構文を使用します。


:[variable] 

ここで、variable は以下のうちの 1 つです。

外部置換変数

変数設定値には、数の制限なしに外部コンポーネント置換参照を含めることができます。 外部コンポーネント置換参照は、以下のどちらかです。


:[primary-component:varname]
:[primary-component:secondary-component-list:varname]

注 –

外部コンポーネント置換参照には、空白は含まれません。


上の primary-component は、以下のどちらかです。


	explicit-external-component
	secondary-component

また secondary-component は、以下のどれかです。


	nested-component
	toplevel-component
	dependee-component

secondary-component-list は、コロンで区切られた 1 つ以上の secondary-component のシーケンスです。

varname は、事前定義された置換変数名、または参照コンポーネントによって宣言された動的置換変数名です。

明示的な外部コンポーネントの展開

explicit-external-component は、特定の場所の特定のホストにインストールする予定のコンポーネントを明示的に指定し、第 2 章「インストール済みコンポーネント」で説明されている <installedComponent> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。


	component-target:explicit-component-reference

上の component-target は目標コンポーネントをインストールするホストを指定し、以下のどちらかになります。


component
component(host-redirect)

最初の派生関数は、生成コンテキスト内の現在の対象ホストを指定します。 2 番目の派生関数は、ホストの切り替えの説明どおり、host-redirect によって指定された ROX ホスト を指します。

上の explicit-component-reference は、component-target によって指定された対象ホストにインストール済みのコンポーネントへの参照です。 explicit-component-reference は、最小限インストール済みコンポーネントの名前を含み、以下のようにバージョンとインストールパスを含む場合もあります。


full-component-name
full-component-name#version
full-component-name@{path}
full-component-name#version@{path}

上の full-component-name は、目標コンポーネントへの絶対参照または相対参照です。 相対参照は、explicit-component-reference を含むプランまたはコンポーネントに相対して展開されます。 パスは、目標コンポーネントのインストールパスを表す絶対パス名、または展開時に目標コンポーネントの絶対インストールパスを表す置換変数参照です。 絶対パス名に「}」が含まれる場合は、「}}」としてエスケープしなければなりません。

入れ子コンポーネントの展開

nested-component は、現在のコンポーネントによって宣言された入れ子コンポーネント参照によって参照されるコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <nestedRef> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。


	nestedRef:component-reference-name

上の component-reference-name は、現在のコンポーネント内の「NESTED」 installMode を持つ <componentRef> 要素の名前です。

nested-component を使用できるのは、現在のコンポーネントが複合コンポーネントの場合だけです。また、複合コンポーネント内に外部コンポーネント置換参照がある場合は、primary-component としてのみ使用できます。 変数の評価時には参照コンポーネントがインストールされていないので、primary-component として使用する場合は、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。

最上位コンポーネントの展開

toplevel-component は、現在のコンポーネントによって宣言された最上位コンポーネント参照によって参照するコンポーネントを指定し、第 2 章の「インストール済みコンポーネントターゲッター」で説明されている <toplevelRef> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 書式は以下のどれかです。


toplevelRef:component-reference-name
toplevelRef:component-reference-name@{path}
toplevelRef(host-redirect):component-reference-name
toplevelRef(host-redirect):component-reference-name@{path}

上の component-reference-name は、現在のコンポーネント内の "TOPLEVEL" installMode を持つ <componentRef> 要素の名前です。

上の path と host-redirect は、それぞれ参照コンポーネントがインストールされる予定の場所とホストです。 host-redirect の構文は、「ホストの切り替え」の項で説明されています。

toplevel-component を使用できるのは、現在のコンポーネントが複合コンポーネントの場合だけです。また、複合コンポーネント内に外部コンポーネント置換参照がある場合は、primary-component としてのみ使用できます。 primary-component として使用される場合は、参照コンポーネントがすでにインストール済みでないかぎり、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。

依存先コンポーネントの展開

dependee-component は、<createDependency> 手順によって作られた依存関係の結果、現在のコンポーネントが依存しているコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <dependee> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。


	dependee:dependency-name

上の dependency-name は、現在のコンポーネントによって作成された依存関係の名前です。

外部コンポーネント置換参照がコンポーネント内にある場合、dependee-component は primary-component としてしか使用できません。 変数の評価時に依存関係が確立していないので、primary-component として使用する場合は、コンポーネント変数のデフォルト値または優先変数設定として使用することはできません。

システムサービスコンポーネントの展開

system-service-component は、現在の対象の物理的なルートホストにインストールされる予定のシステムサービスコンポーネントを指定し、第 2 章「インストール済みコンポーネントターゲッター」で説明されている <systemService> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 構文は以下のとおりです。

systemService:system-service-name

システム型コンポーネントの展開

system-type-component は、特定の場所の特定のホストに一番最近インストールされたあるコンポーネント型から派生したコンポーネントを指定し、第 2 章の「インストール済みコンポーネントターゲッター」で説明されている <systemType> インストール済みコンポーネントターゲッターのコンポーネント解釈処理意味論を持っています。 書式は以下のとおりです。

systemType:component-type-name

systemType:component-type-name@{path}

systemType(host-redirect):component-type-name

systemType(host-redirect):component-type-name@{path}

ここでは path はオプションです。指定された場合は、目標コンポーネントをインストールするパスを示します。 host-redirect もオプションです。これは、ホストの切り替えの説明どおり目標コンポーネントがインストールされるホストを示します。

コンテナコンポーネントの展開

container-component は、入れ子参照として現在のコンポーネントを含むコンポーネントを指定します。 構文は以下のとおりです。


	container

外部コンポーネント置換参照が、他の「コンテナ」コンポーネントによって入れ子コンポーネントとしてインストールされたコンポーネント内にある場合、container-component は primary-component としてしか使用できません。

外部コンポーネント置換参照の解釈処理

外部コンポーネント置換参照の値は、まず primary-component が参照するコンポーネントを解釈処理することによって計算されます。 secondary-component が primary-component として使用された場合、外部コンポーネント置換参照を含む現コンポーネントは、primary-component の解釈時に使用される初期現コンポーネントとして機能します。 primary-component によって解釈処理されたコンポーネントは、新しい現コンポーネントになります。 次に、secondary-component-list 内の secondary-component が、最後に解釈処理されたコンポーネントを現コンポーネントとして使用して、解釈処理されます。 その後、最後に解釈処理されたコンポーネント内の varname という変数が検索され、返されます。

外部コンポーネント置換参照の値は、インストール時点の参照コンポーネント内の指定された変数の値をもとに計算されます。 インストール済みコンポーネントによって宣言されたのではない変数名や、対象ホストにインストールされていないコンポーネントを参照してはなりません。 また、外部コンポーネント置換参照を宣言するコンポーネントやプランからアクセスできない変数も参照しないでください。 変数にアクセスできるのは、変数がアクセス可能アクセスモードで宣言され、コンポーネントを宣言するコンポーネントにアクセスでき、そのコンポーネントに到達するために通るプライマリコンポーネントとセカンダリコンポーネントそれぞれにアクセスできる場合だけです。


注 –

外部コンポーネント置換参照は、プラン実行中に出現したときに計算されます (プラン実行の開始時ではありません)。 したがって、参照される実際のインストール済みコンポーネントは、プラン内で以前実行された手順をもとに変更されている場合があります。 さらに、現在の対象ホスト以外のホストにインストールされたコンポーネントへの参照は、他のホストで同時に実行されている他のプランから影響を受ける場合があります。 予想可能な結果を得るためには、クライアントは、現在のプラン実行の対象セット内に含まれる参照ホストだけを参照し (それらがロックされていることを保証して)、目標再設定または一括実行モードもしくはその両方を使用してプラン内の外部から参照されているホスト上のインストール/アンインストール操作をすべて同期する必要があります。


以下に、明示的な外部コンポーネントを使用した外部コンポーネント置換参照の例をいくつか挙げます。


:[component:installApache:label]
:[component:jdk#1.3:classpath]
:[component:webApp#2.4@{/usr/local}:bannerColor]
:[component(/):IIS global settings:install_path]
:[component:webApp@{:[webAppPath]}:bannerColor]

2 番目以降の例では、現在の対象ホストの物理的なルートホストにインストールされたコンポーネントが解釈処理されます。

最後の行では、webAppPath が、外部から参照されているコンポーネント内で定義された変数としてではなく、生成コンテキストの関連コンポーネント内の単純置換変数セットの名前として解釈処理されます。

以下に、入れ子コンポーネントまたは最上位コンポーネントを使用した外部コンポーネント置換参照の例をいくつか挙げます。


:[nestedRef:ref1:label]
:[toplevelRef:ref2:name]
:[toplevelRef(/):ref3@{/usr/local}:var1]

次に、依存先コンポーネントを使用した外部コンポーネント置換参照の例を挙げます。


:[dependee:app2domain:domainName]

セッション変数の置換変数

セッション変数を使用すると、ログインセッション中に 1 回、WebLogic 資格などのデータを入力できます。 また、ユーザーは、ログインごとに再入力しなくてすむように、これらの変数の内容をセキュアに保存できます。 セッション変数は、置換変数を使用してモデル化レベルで統合されます。 セッション変数の構文は、以下のとおりです。


session:varname

上の varname は、セッション変数の名前です。


注 –

session:varname という書式のセッション変数参照は、現在のユーザーのセッション内のセッション変数の値に解釈処理されます。 現在のユーザーのセッションに定義されていないセッション変数を解釈処理しようとすると、セッション変数が定義されていないことを示すエラーが発生します。 セッション変数を生成できなかった場合は、ユーザーの現在のセッションの変数セットに空の値を持つセッション変数を追加しようとする試みが行われます。


セッション変数は、単純置換変数参照が使用できるところであればどこでも使用できます。 ただし、他のセッション変数の値の中では使用できません。

対象置換変数

対象置換変数を使用すると、特定のホストから値を直接取得できます。

対象置換変数の構文は、以下のとおりです。


:[target:varname]
:[target(hostname):varname]

target で始まる変数名は、現在プランが実行されている論理ホストを指します。

コロンの後に追加する varname パラメタは、対象ホストの定義でインストール中のアプリケーションのために指定された属性値を表します。

target の直後に (hostname) を指定した場合、varname の値は特定のホストから検出されます。このホストは現在プランが実行されているホストとは別のホストでもかまいません。 また、展開時にホストの名前に解釈処理される hostname の置換変数を指定することもできます。

ホストの切り替え

ホスト置換参照と外部コンポーネント置換参照には、ホストの切り替えをオプションで含めることができます。ホストの切り替えでは、変数やコンポーネントが検索されるホストが、現在の対象から指定ホストに切り替えられます。 ホストの切り替えの書式は、以下のどれかです。

parent-ref hostname hostname/parent-ref

ここで hostname は、ROX ホストの名前か、展開時に ROX ホストの名前に解釈処理される置換変数参照です。

parent-ref は、指定されたホスト (hostname が省略された場合は現在の対象ホスト) のルート親ホストを意味する「/」、または指定されたホスト (hostname が省略された場合は現在の対象ホスト) の n 番目の親を意味する 1 つ以上のスラッシュで区切られた「..」となります。「n」は、表示された「..」の数です。 parent-ref 演算子は、主に仮想ホストで使用されるためのものですが、物理ホストでも使用できます。 物理ホストにどちらかの演算子を適用すると、ノーオペレーション (空命令) となります。

以下に、対象置換変数の使用例をいくつか挙げます。

この例では、ホスト myHost 上で変数 var1 を検索します。


:[target(myHost):var1] 

この例では、置換変数 hostName で指定されるホスト上で変数 var1 を検索します。


:[target(:[hostName]):var1]

この例では、プランを実行中の論理ホスト上で変数 var1 を検索します。


:[target:var1]

対象ホストに対して事前定義される変数は、以下のとおりです。

以下に、apache のコンポーネントで定義された変数の一覧の例を示します。


<varList>
	<var name="domainname" default=":[target:
domainname]" /> 
	<var name="name" default="apache" /> 
	<var name="installPath" default="/opt/apache" />
	<var name="execNativeShutdown" 
	 default=":[installPath]/bin/apachectlstop" />
	<var name="execNativeStartUp" 
	 default=":[installPath]/bin/apachectlstart" />
</varList>

このコンポーネントは、ドメイン名が対象ホストから動的に検出されることを指定し、「name」のデフォルト値に「apache」を定義した後、2 つの execNative 変数の定義で使用する変数 installPath の値を指定します。

構成ファイル内で対象置換変数を使用することはできませんが、構成ファイル内からホスト固有の値を参照することは可能です。 これは、参照する変数の値がホスト固有の値として計算される場合があるからです。 たとえば、コンポーネントの <varList> セクション内に以下の変数を定義したとします。


<var name="pants" value=":[target:pie]">

ここで構成ファイル内から :[pants] を参照します。 :[pants] は、対象ホストによって定義された pie 変数の値と置き換えられます。

事前定義されたホスト置換の短縮形

:[/] と :[/] という短縮形は、ホスト置換参照を使用できるところではどこでも使用できます。

:[/] という短縮形は、現在の対象ホストの物理的なルートホストのオペレーティングシステム固有のファイル区切り文字に展開されます。 たとえば、UNIX ベースのオペレーティングシステムでは「/」に展開され、Windows では「\」に展開されます。

:[:] という短縮形は、現在の対象ホストの物理的なルートホストのオペレーティングシステム固有のパス区切り文字に展開されます。 たとえば、UNIX ベースのオペレーティングシステムでは「:」に展開され、Windows では「;」に展開されます。