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

execNative 手順

<execNative> 手順は、対象ホストでネイティブコマンドを実行するために使用されます。 コマンドが予期しなかった結果を生成する場合、手順は失敗し、実行が停止します。

execNative 手順属性

名前 

型 

必須 

構成可能 

説明 

userToRunAs 

文字列 

不可 

可能 

当該コマンドをどのユーザーとして実行するかを指定する。 指定するとコマンドはこのユーザーとして実行され、指定しないと構成ファイル内の defaultUserToRunAs として実行される。 値として、文字列によるユーザー名または数値による UID を指定できる。 これは、空でない文字列でなければならない 

dir 

文字列 

不可 

可能 

コマンドの作業ディレクトリの絶対パス。 指定しないと、デフォルトでエージェント固有の構成可能ディレクトリが使用される。 空の文字列であってはならない 

timeout 

正の Integer 

いいえ 

不可 

コマンドの完了を待機する時間を秒数で指定する。この時間を経過するとタイムアウトとなる。 指定しないと、プランの exec 固有タイムアウト期間が適用される。 この値は 0 よりも大きなものでなければならない 

execNative は、次のものを指定するために入れ子になった要素を持つことができます。

execNative 要素の子要素

名前 

数 

説明 

env 

0 またはそれ以上 

子プロセスの環境変数 

background 

0 または 1 

コマンドをバックグラウンドプロセスとして実行すべきであることを指定する 

outputFile 

0 または 1 1 

コマンドの標準出力を格納するファイルの名前 

errorFile 

0 または 1 1 

コマンドの標準エラー出力を格納するファイルの名前 

inputText 

指定できるのはこれらの要素の 1 つだけ 2 

コマンドの標準入力に送り込むテキスト。 inputFile が指定されているとこの要素は指定できない 

inputFile 

ファイルの名前を指定する。このファイルからコマンドの標準入力が読み取られる 

exec 

これらの要素の 1 つを指定する必要がある 3 

実行する実行可能ファイルを指定する 

shell 

実行するシェルコマンドを指定する 

successCriteria 

0 または 1 

この手順が正常に実行されたかどうかを評価する基準 

1 <background> 要素を指定する場合は、<outputFile> と <errorFile> の両方を指定する必要があります。

2 inputText および inputFile 要素は省略可能です。 これらの指定は一度に 1 つずつ行う必要があります。

3 exec または shell 要素の 1 つを指定する必要があります。 execNative 要素内に exec 要素と shell 要素の両方を入れることは認められません。

<inputText> および <inputFile> 要素は省略可能です。 これらの指定は一度に 1 つずつ行う必要があります。

3 exec または shell 要素の 1 つを指定する必要があります。 execNative 要素内に exec 要素と shell 要素の両方を入れることは認められません。

env 子要素

<execNative> 要素は、コマンドの環境変数を指定する目的で、必要に応じて <env> 要素を含むことができます。 <env> を使用すると、コマンド環境の新しい変数を提供することも、既存の変数を無効にすることもできます。

コマンドの環境変数セットは、遠隔エージェントの環境変数セットと、<env> タグを使用して提供される変数を合わせたものです。

env 要素属性

名前 

型 

必須 

構成可能 

説明 

name 

文字列 

はい 

可能 

環境変数の名前。 空でない文字列を指定する必要がある 

value 

文字列 

はい 

可能 

環境変数の値。 この値には、RA の環境変数の値を参照するように、${var_name} 文字列を含めることができる。 var_name が無効にされる変数を env タグを使用して参照する場合、その置換された値は RA の環境内で定義されたものであり、無効にされたも値ではない。 ${ という文字をそのまま表示させる必要がある場合は、${{ を使用できる。 ${{ のインスタンスはすべて ${ に置換される 

background 要素

<background> 要素は <execNative> 要素の子です。この要素が指定される場合、コマンドをバックグラウンドプロセスとして実行する必要があることを示します。 この要素には属性も子要素もありません。

<background> 要素が指定された <execNative> の場合、以下の制限が適用されます。

outputFile 要素

outputFile 要素は、実行されるコマンドの標準出力が格納される、エージェント上のローカルファイルのパスを指定するために使用されます。 ローカルファイルのパスは、outputFile 要素内の name 属性で指定します。 相対パスは、コマンドの作業ディレクトリに相対的であると解釈されます。

background 要素を指定する場合は、outputFile 要素を指定する必要があります。

outputFile を指定せず、successCriteria 要素で outputMatches も指定しないと、コマンドの各出力は格納されずに消失します。 outputMatches を指定すると、標準出力は一時ファイルに格納され、コマンドの実行後そのファイルが削除されます。

outputFile 属性

名前 

型 

必須 

構成可能 

説明 

name 

文字列 

はい 

可能 

コマンドの標準出力の書き込み先となるファイル。 空でない文字列を指定する必要がある  

errorFile 要素

errorFile 要素は、実行されるコマンドのエラー出力を格納する、エージェント上のローカルファイルのパスを指定するために使用されます。 ローカルファイルのパスは、errorFile 要素内の name 属性で指定します。 相対パスは、コマンドの作業ディレクトリに相対的であると解釈されます。

background 要素を指定する場合は、errorFile 要素を指定する必要があります。

errorFile を指定せずに、かつ successCriteria 要素で errorMatches を指定しないと、コマンドの各出力は格納されずに消失します。 errorMatches を指定すると、エラー出力は一時ファイルに格納され、コマンドの実行後そのファイルが削除されます。

errorFile 属性

名前 

型 

必須 

構成可能 

説明 

name 

文字列 

はい 

可能 

コマンドのエラー出力の書き込み先となるファイル。 空でない文字列を指定する必要がある  

inputText 子要素

<inputText> 要素は、<execNative> の子要素です。 <inputText> 要素は、コマンドの標準入力に送り込む必要がある任意のテキストを指定します。 このテキストは、この要素のコンテンツとして指定されます。

<inputText> は、CDATA セクションの入力を囲む目的で使用できます。入力を囲むことで、入力フォーマットを保持するとともに、文字 `& や `<' を含む入力で発生しえる解析エラーを防ぐことができます。

(例:


<execNative>
		<inputText> 		  ls –l |fgrep `*test*'|sort –u >file.out 
	</inputText> 		<command exec=”sh”/> </execNative> 

<inputText> を指定すると、<execNative> 手順の XML を生成する際に常に CDATA セクション内に包含されます。 inputText 内の文字はすべて、実行されるコマンドにそのままの形で送り込まれます。 inputText に空白文字だけを含めると、それらの空白文字は指定されているとおりに実行されるコマンドの標準入力に送り込まれます。

<inputText> のコンテンツは config 生成されます。

<inputText> 要素に属性はありません。

inputFile 子要素

<inputFile> 要素は、<execNative> の子要素です。 <inputFile> 要素は、実行されるコマンドの標準入力に送り込まれるコンテンツが入った、遠隔リモートエージェント上のローカルファイルのパスを指定するために使用されます。 ローカルファイルのパスは、<inputFile> 要素内の name 属性を使用して指定します。


注 –

<inputFile> 要素は、<execNative> コマンド内で <inputText> 要素と併用することはできません。


inputFile 要素属性

名前 

型 

必須 

構成可能 

説明 

name 

文字列 

はい 

可能 

コマンドの入力情報が入ったファイル。 空でない文字列を指定する必要がある。 相対パスを指定した場合、コマンドの作業ディレクトリに対して相対的であると解釈される 

exec 子要素

<execNative> 手順には <exec> 要素を 1 つしか含めることができません。 <exec> 要素は、実行されるネイティブコマンドの詳細を指定します。

<exec> 要素には次のものが含まれます。

<execNative> は、cmd 内に指定されたコマンドを、指定された引数を順に使用して直接実行します。

次に、<execNative> 手順の例を示します。


<execNative>
	<exec cmd=”ps”>
		<arg value=”-fu”/>
		<arg value=”sps”/>
	</exec>
</execNative> 

この手順は、コマンド ps –fu sps を実行します。

exec 要素属性

名前 

型 

必須 

構成可能 

説明 

cmd 

文字列 

はい 

可能 

実行するコマンドのパス。 指定したパスが絶対パスでない場合、RA の PATH 環境変数で指定されたプラットフォームを使用してコマンドの検索が行われる。 空でない文字列を指定する必要がある 

exec 要素の子要素

名前 

数 

説明 

arg 

0 またはそれ以上 

実行するコマンドの引数。 各 arg 要素は、コマンドに対する定位置パラメタを 1 つ定義する 

arg 子要素属性

名前 

型 

必須 

構成可能 

説明 

value 

文字列 

はい 

可能 

引数値 この引数は、arg がコマンド要素の n 番目の子であるコマンドに n 番目の引数として渡される 

shell 子要素

<shell> 要素は、<execNative> の子要素です。 <shell> 要素は、そのコンテンツとして実行されるコマンドを指定します。 実行されるコマンドは、cmd 属性で指定されるインタプリタによってインタプリトされます。 したがって、指定されるコマンドはそのプラットフォームの sh –c `command' 構文を使用して実行されます。 この書式では、コマンドの実行に使用するシェルコマンドを示すために cmd 属性を指定する必要があります。

(例:


<execNative>
	<shell cmd=”/usr/bin/bash -c”>
		ls –l |fgrep `*test*'|sort –u >file.out
	</shell>
</execNative> 

このコードは次のコマンドを実行します。


/usr/bin/bash –c `ls –l |fgrep `*test*'|sort –u >file.out' 

書式を保持するとともに XML の解析エラーを回避するため、<execNative> 手順から XML 表現を生成する際には常に CDATA 要素内にコマンドのテキストコンテンツが包含されます。

コマンド文字列を空の状態にしたり、空白文字だけを入れたりすることは認められません。 コマンド文字列は、(周囲の空白も含め) 指定されているとおりにシェルに送られます。

<shell> 要素のコンテンツは config 生成されます。

シェル要素の属性

名前 

型 

必須 

構成可能 

説明 

cmd 

文字列 

はい  

可能 

`sh –c' 構文内のシェルコマンド。 この文字列には、埋め込みの引用符文字を含めてはならない。 この文字列は、空白を区切りとして使用したシェル名と引数を取得するために解析される。 たとえば、`/usr/bin/bash –c' は空でない文字列でなければならない。 

successCriteria 要素

<successCriteria> 要素は、<execNative> の子要素です。 <successCriteria> 要素は、<execNative> 手順が正常に実行されたかを評価するために使用される基準を指定します。 この要素が指定されない場合のデフォルト値は次のとおりです。


<successCriteria status=”0”/> 

空の successCriteria を指定すると、successCriteria は無視されます。 次のタグを指定した場合には、


<successCriteria/> 

コマンドがどのような出力または終了コードを生成した場合でも、手順は常に成功します。

successCriteria 要素属性

名前 

型 

必須 

構成可能 

説明 

status 

整数 

いいえ (複数指定するとそれらの条件の AND (論理積) がとられる) 

不可 

コマンドの適切な終了ステータス。 正の整数でなければならない 

outputMatches 

文字列 

可能 

コマンドによって生成された標準出力を照合する正規表現。 空でない文字列を指定する必要がある 

errorMatches 

文字列 

はい 

コマンドによって生成された標準エラーを照合する正規表現。 空でない文字列を指定する必要がある 

inverse 

ブール型 

いいえ 

不可 

true に設定すると、successCriteria の echo 要素によって表現された条件は無視される。 デフォルト値は false。 つまり、successCriteria の各属性で指定された条件が満たされない場合だけ手順は成功する 

inverse 属性を true に設定すると、<successCriteria> 内で指定された各条件は無視されます。

たとえば、次の successCriteria を持つ <execNative> 手順の場合、


<successCriteria status=”1” outputMatches=”bin” errorMatches=”none” inverse=”true”/> 

ステータスが 1 でなく、出力が `bin' に一致せず、エラーが `none' に一致しない場合だけ成功します。

inverse 属性だけを含む <successCriteria> 要素は、inverse 属性なしで保存されます。 つまり、次のように指定すると、


<successCriteria inverse=”true”/> 

次のように保存されます。


<successCriteria/> 

結果的に、<successCriteria> は無視されます。