ページの先頭行へ戻る
Systemwalker Software Configuration Manager 開発ガイド
FUJITSU Software

2.1.4 パラメーター設定スクリプト

パラメーター設定スクリプトとは、ソフトウェアにパラメーターを設定するためのスクリプトです。このスクリプトは、サーバに転送されて、サーバ上で実行されます。

パラメーター設定スクリプトは、複数のファイルで構成されています。また、Windowsで使用できるバッチファイルと、Linuxで使用できるシェルスクリプトが決められています。このファイルの説明を、以下に示します。

スタートアップスクリプト (バッチファイル) の形式【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) は、以下の形式で本製品が生成します。

環境変数の名前は、パラメーター設定定義(パラメーター情報)にあるパラメーターのキーが設定されます。環境変数の値は、パラメーター設定定義やパラメーター情報にあるパラメーターの値が設定されます。ただし、以下の変換をします。

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) は、以下の形式で本製品が生成します。

環境変数の名前は、パラメーター設定定義(パラメーター情報)にあるパラメーターのキーが設定されます。環境変数の値は、パラメーター設定定義やパラメーター情報にあるパラメーターの値が設定されます。ただし、以下の変換をします。

パラメーターのキー=パラメーターの値
パラメーターのキー=要素の個数                      ・・・文字列の配列型
パラメーターのキー_インデックス=パラメーターの値   ・・・文字列の配列型
パラメーターのキー=エントリーの個数                ・・・マップ型
パラメーターのキー_サブキー=パラメーターの値       ・・・マップ型
<パラメーターの数だけ環境変数を定義します>

例:

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タグの内容を参照してください。その他のタグは、省略されるか、参照する必要がない情報です。

生成されるパラメーター情報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】

      添付ファイルにシェルスクリプトを含める場合は、実行権をシェルスクリプトのスタートアップスクリプトの中で設定してください。