パラメーター設定スクリプトとは、ソフトウェアにパラメーターを設定するためのスクリプトです。このスクリプトは、サーバに転送されて、サーバ上で実行されます。
パラメーター設定スクリプトは、複数のファイルで構成されています。また、Windowsで使用できるバッチファイルと、Linuxで使用できるシェルスクリプトが決められています。このファイルの説明を、以下に示します。
スタートアップスクリプト
スタートアップスクリプトは、必ず初めに呼び出されるスクリプトです。
このスクリプトはファイル名が決められていて、バッチファイルがstartup.cmdで、シェルスクリプトがstartup.shです。このスクリプトでは、入力となる環境変数設定スクリプトを呼び出す処理と、出力となる結果を復帰する処理を必ず実行してください。このほかの処理は、ソフトウェアごとに作成することができます。
環境変数設定スクリプト
パラメーターの値をスタートアップスクリプトに入力するためには、環境変数が使用されます。この環境変数を設定するのが、環境変数設定スクリプトです。このスクリプトはファイル名が決められていて、バッチファイルがsetenv.cmdで、シェルスクリプトがsetenv.shです。環境変数設定スクリプトは、本製品がパラメーター設定定義やパラメーター情報から生成します。
設定するパラメーターのパラメーター情報XMLファイル
スタートアップスクリプトへの入力は、パラメーター情報XMLファイルでも渡します。このファイルはファイル名が決められていて、parameterinfo.xmlです。パラメーター情報XMLファイルは、本製品がパラメーター設定定義やパラメーター情報から生成します。
添付ファイル
スタートアップスクリプトから任意のファイルを使用できます。このファイルは、スタートアップスクリプトと一緒にサーバに転送されます。
添付ファイルにシェルスクリプトを含める場合は、実行権をシェルスクリプトのスタートアップスクリプトの中で設定してください。
スタートアップスクリプト (バッチファイル) の形式【Windows】
バッチファイルのスタートアップスクリプト (startup.cmd) は、以下の形式で作成します。
初めに環境変数設定スクリプト (setenv.cmd) を呼び出します。パラメーターの値を環境変数から取得して、ソフトウェアにパラメーターを設定する処理を記述します。また、パラメーターの値は、パラメーター情報XMLファイルからも取得できます。最後に処理が成功した場合は0を復帰して、失敗した場合は0以外を復帰します。標準出力と標準エラー出力は、エージェントのログに出力されます。
@echo off setlocal @rem 環境変数を設定する call .\setenv.cmd @rem ソフトウェアのセットアップ処理 <各ソフトウェアの処理> setup -host %manager_name% @rem 結果(正常)を復帰する if ERRORLEVEL 1 goto ERROR_END endlocal exit /B 0 @rem 結果(異常)を復帰する : ERROR_END echo ERROR0001 Parameter setting failed. 1>&2 endlocal exit /B 1
スタートアップスクリプト(シェルスクリプト) の形式【Linux】
シェルスクリプトのスタートアップスクリプト (startup.sh) は、以下の形式で作成します。
初めに環境変数設定スクリプト (setenv.sh) を呼び出します。パラメーターの値を環境変数から取得して、ソフトウェアにパラメーターを設定する処理を記述します。また、パラメーターの値は、パラメーター情報XMLファイルからも取得できます。最後に処理が成功した場合は0を復帰して、失敗した場合は0以外を復帰します。標準出力と標準エラー出力は、エージェントのログに出力されます。
#!/bin/sh # 環境変数を設定する source ./setenv.sh # ソフトウェアのセットアップ処理 <各ソフトウェアの処理> setup -host ${manager_name} # 結果を復帰する if [ $? = "0" ]; then # 正常を復帰する exit 0 else # 異常を復帰する echo "ERROR0001 Parameter setting failed." 1>&2 exit 1 fi
環境変数設定スクリプト (バッチファイル) の形式【Windows】
バッチファイルの環境変数設定スクリプト (setenv.cmd) は、以下の形式で本製品が生成します。
環境変数の名前は、パラメーター設定定義(パラメーター情報)にあるパラメーターのキーが設定されます。環境変数の値は、パラメーター設定定義やパラメーター情報にあるパラメーターの値が設定されます。ただし、以下の変換をします。
キーの.(ピリオド)と-(ハイフン)を_(アンダーバー)にする
環境変数名は、キーの.(ピリオド)と-(ハイフン)を_(アンダーバー)に置換した文字列にします。
文字列の配列型の環境変数は、キーと配列のインデックスを組み合わせる
文字列の配列型は複数の値を持つため、インデックスごとに環境変数を作成します。環境変数名は、キーと配列のインデックスを_(アンダーバー)で組み合わせたものにします。また、キーの環境変数名を作成して、値に配列の個数を設定します。配列の要素が0個の場合は、キーの環境変数名だけが作成されます。配列のインデックスは「1」から開始します。
マップ型の環境変数は、キーとサブキーを組み合わせる
マップ型は複数の値を持つため、サブキーごとに環境変数を作成します。環境変数名は、キーとサブキーを_(アンダーバー)で組み合わせたものにします。また、キーの環境変数名を作成して、エントリーの個数を設定します。エントリーが0個の場合は、キーの環境変数名だけが作成されます。
環境変数の値が空文字になる場合は「__EMPTY__」にする
環境変数の値が空文字の場合は、値を__EMPTY__(「__」は「 _ 」と「 _ 」が2つ続いている)に置換する。
set パラメーターのキー=パラメーターの値 set パラメーターのキー=要素の個数 ・・・文字列の配列型 set パラメーターのキー_インデックス=パラメーターの値 ・・・文字列の配列型 set パラメーターのキー=エントリーの個数 ・・・マップ型 set パラメーターのキー_サブキー=パラメーターの値 ・・・マップ型 <パラメーターの数だけ環境変数を定義します>
例:
set manager_name=server1 set manager_adata=2 ・・・文字列の配列型 set manager_adata_1=data1 ・・・文字列の配列型 set manager_adata_2=data2 ・・・文字列の配列型 set manager_bdata=0 ・・・0個の文字列の配列型 set manager_cdata=3 ・・・マップ型 set manager_cdata_subkey1=data1 ・・・マップ型 set manager_cdata_subkey2=data2 ・・・マップ型 set manager_cdata_subkey3=data3 ・・・マップ型 set manager_ddata=0 ・・・0個のマップ型
環境変数設定スクリプト(シェルスクリプト)の形式【Linux】
シェルスクリプトの環境変数設定スクリプト (setenv.sh) は、以下の形式で本製品が生成します。
環境変数の名前は、パラメーター設定定義(パラメーター情報)にあるパラメーターのキーが設定されます。環境変数の値は、パラメーター設定定義やパラメーター情報にあるパラメーターの値が設定されます。ただし、以下の変換をします。
キーの.(ピリオド)と-(ハイフン)を_(アンダーバー)にする
環境変数名は、キーの.(ピリオド)と-(ハイフン)を_(アンダーバー)に置換した文字列にします。
文字列の配列型の環境変数は、キーと配列のインデックスを組み合わせる
文字列の配列型は複数の値を持つため、インデックスごとに環境変数を作成します。環境変数名は、キーと配列のインデックスを_(アンダーバー)で組み合わせたものにします。また、キーの環境変数名を作成して、値に配列の個数を設定します。配列の要素が0個の場合は、キーの環境変数名だけが作成されます。配列のインデックスは「1」から開始します。
マップ型の環境変数は、キーとサブキーを組み合わせる
マップ型は複数の値を持つため、サブキーごとに環境変数を作成します。環境変数名は、キーとサブキーを_(アンダーバー)で組み合わせたものにします。また、キーの環境変数名を作成して、エントリーの個数を設定します。エントリーが0個の場合は、キーの環境変数名だけが作成されます。
環境変数の値に空白がある場合に"(ダブルコーテーション)で囲う
環境変数の値に空白を含む場合は、値を"(ダブルコーテーション)で囲います。
パラメーターのキー=パラメーターの値 パラメーターのキー=要素の個数 ・・・文字列の配列型 パラメーターのキー_インデックス=パラメーターの値 ・・・文字列の配列型 パラメーターのキー=エントリーの個数 ・・・マップ型 パラメーターのキー_サブキー=パラメーターの値 ・・・マップ型 <パラメーターの数だけ環境変数を定義します>
例:
manager_name=server1 manager_adata=2 ・・・文字列の配列型 manager_adata_1=data1 ・・・文字列の配列型 manager_adata_2=data2 ・・・文字列の配列型 manager_bdata=0 ・・・0個の文字列の配列型 manager_cdata=3 ・・・マップ型 manager_cdata_subkey1=data1 ・・・マップ型 manager_cdata_subkey2=data2 ・・・マップ型 manager_cdata_subkey3=data3 ・・・マップ型 manager_ddata=0 ・・・0個のマップ型
パラメーター情報XMLファイルの形式
設定するパラメーターのパラメーター情報XMLファイルは、本製品が生成します。このファイルにあるparametersタグのkeyタグとvalueタグの内容を参照してください。その他のタグは、省略されるか、参照する必要がない情報です。
参照するタグ
parameters
省略されるタグ
description
参照する必要がないタグ
name
生成されるパラメーター情報XMLファイルのイメージを、以下に示します。
<?xml version="1.0" encoding="UTF-8"?> <parameterInfo version="3.0"> <name>[パラメーター情報の名前]</name> <parameters> <parameter> <key>[パラメーターのキー]</key> <value>[パラメーターの値]</value> </parameter> … </parameters> </parameterInfo>
パラメーター情報XMLファイルの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?> <parameterInfo version="3.0"> <name>パラメーター情報</name> <parameters> <parameter> <key>manager.name</key> <value>server1</value> </parameter> <parameter> <key>manager.adata</key> <array> <element>data1</element> <element>data2</element> </array> </parameter> <parameter> <key>manager.cdata</key> <map> <entry> <subkey>subkey1</subkey> <value>data1</value> </entry> <entry> <subkey>subkey2</subkey> <value>data2</value> </entry> <entry> <subkey>subkey3</subkey> <value>data3</value> </entry> </map> </parameter> </parameters> </parameterInfo>
注意
スクリプトに使用できないコマンドについて
以下のコマンドはスクリプトから実行しないでください。これらのコマンドを実行すると、業務サーバにおいてスクリプト処理が待機状態となり、スクリプトの処理が完了しません。
対話型処理が必要なコマンド【Windows/Linux】
実行するとウィンドウが起動するコマンド【Windows】
ATコマンド【Windows】
PowerShellで作成されたシェル・スクリプト【Windows】
フルスクリーン系のコマンド【Linux】
パラメーター設定スクリプト
実行順序
パラメーター設定スクリプトが動作する順番は、パラメーター設定ウィザードで指定した順番です。
スタートアップスクリプト
実行権限
Windows版では、Administratorで実行されます。
Linux版では、スーパーユーザーで実行されます。
カレントディレクトリ
スタートアップスクリプトのファイルが格納されているパスが、カレントディレクトリになります。
実行権【Linux】
スタートアップスクリプトのシェルスクリプトは、実行時に自動的に実行権が設定されます。
改行
Windows版では、CR+LFです。
Linux版では、LFです。
バイトオーダーマーク(BOM)【Linux】
シェルスクリプトでは、UTF-8のバイトオーダーマーク (BOM) を含めないでください。
環境変数設定スクリプト
環境変数の定義
パラメーターの値を設定しない場合は、環境変数を定義しません。このため、スタートアップスクリプトでは、パラメーターの値を設定するかしないかを、環境変数の定義があるかなしかで判断します。
環境変数が定義されているか判定する方法を、以下に示します。
バッチファイルの場合:【Windows】
if defined <環境変数> (<定義されている処理>) else <定義されていない処理>
例:
set PARAM=%hostname% if defined parameter_Key1 (set PARAM=-v %parameter_Key1% %PARAM%)
シェルスクリプトの場合:【Linux】
${<環境変数>+${<環境変数>}}
例:
PARAM=${hostname} PARAM="${parameter_Key1+"-v ${parameter_Key1}"} ${PARAM}"
値の空文字列【Windows】
Windowsの環境変数は空文字列を設定できません。このため、バッチファイルの空文字列は、「__EMPTY__」(「
__」は「_」と「_」が2つ続いています) を設定します。このため、パラメーターの値として、「__EMPTY__」を使用はできないことに注意してください。
記号(特殊文字)
パラメーターの値を環境変数設定スクリプトで渡す場合は、記号(特殊文字)を入力できないものや、記号(特殊文字)の前にエスケープ文字の指定が必要なものがあります。
添付ファイル
実行権【Linux】
添付ファイルにシェルスクリプトを含める場合は、実行権をシェルスクリプトのスタートアップスクリプトの中で設定してください。