                                                         2024年8月26日
                                          サイオステクノロジー株式会社


本スクリプトは、GenericARK開発ガイドでご紹介している各スクリプトの実装
を、サンプルとしてまとめたものです。


【ファイルの解凍】

LK4L_Gen_sample_scripts_v2.2.tgzを適当なディレクトリーで解凍してくださ
い。

======================================================================
# tar xvzf LK4L_Gen_sample_scripts_v2.2.tgz
======================================================================

解凍すると以下のファイルが作成されます。ファイルのパーミッションが以下
と同じかどうかを確認してください。

======================================================================
# ls -l restore remove quickCheck recover
-rwxr--r-- 1 root root 6453 Aug  3  2020 quickCheck
-rwxr--r-- 1 root root 6669 Aug  3  2020 recover
-rwxr--r-- 1 root root 6566 Aug  3  2020 remove
-rwxr--r-- 1 root root 6833 Aug  3  2020 restore
======================================================================

各ファイルのsha256sumの値は以下の通りです。

======================================================================
1da438cea24af851b0c3e43cec8d13a1374d3916289478db6c008c1a33869e3a  restore
119b61f3ec092de451b196459077938d0b1d888eaf66fe9648cd5548a511a6b2  remove
8fbbbd7f8330c3c268690bd0cfb169f36302428fbab7c640e7e8601d9febc3d6  quickCheck
b6f39ab2bfea97db50b28aa59939c669316fb8fb997fd9749f62582265cb3a5d  recover
======================================================================

アーカイブに含まれる各スクリプトの用途は以下の通りです。

restore
　リソースの起動を行います。

remove
　リソースの停止を行います。

quickCheck
　リソースの監視を行います。

recover
　quickCheckの結果がエラーであった場合に、ローカルノードでの再起動を行
　い、サービス復旧を試みます。成功すればフェイルーバは発生しません。


【ファイルの編集】

本スクリプトは、各ファイルの上部に必要なパラメーターを記述することで、
GenericARK開発ガイドでご紹介している仕様を簡単に実現することが出来ます。
ここでは、各スクリプトの使用方法についてご説明します。

[スクリプトの設定項目]
restore、remove、quickCheck、recoverの各スクリプトの28行目から始まって
いる、「保護対象パラメーター設定（ユーザー定義）」に必要な設定を追記し
てください。設定する内容は、各行のコメントを参照してください。

なお、これらのパラメーターの全てが必須項目というわけではありません。強
制停止コマンドが用意されていないアプリケーションなどは、当該項目を空の
ままにしておいてください。

======================================================================
################################################
#  保護対象パラメーター設定  （ユーザー定義）  #
################################################
APP=""                    # 保護対象アプリケーション名
VHOSTNAME=""              # 仮想 IP アドレスに対応するホスト名

APP_START=""              # 起動コマンド
APP_START_ARGS=""         # 起動コマンドの引数

APP_STOP=""               # 停止コマンド
APP_STOP_ARGS=""          # 停止コマンドの引数

APP_FORCE_STOP=""         # 強制停止コマンド
APP_FORCE_STOP_ARGS=""    # 強制停止コマンドの引数

APP_CHECK[0]=""           # 動作確認コマンド1の絶対パス
APP_CHECK_ARGS[0]=""      # 上記コマンドの引数

# APP_CHECK[1]=""         # 動作確認コマンド2の絶対パス
# APP_CHECK_ARGS[1]=""    # 上記コマンドの引数
======================================================================

さらに50行目から、パラメーターの初期化を行うブロックがあります。パラメ
ーターの下後半、コメントで説明のある部分のみ、設定可能です。

======================================================================
############################
# パラメーター初期化       #
############################
TAG=$APP
TTAG=
TIMEOUT=
STATUS=
DEFAULT_TIMEOUT=22   # スクリプトタイムアウト値
START_SUCCESS_CODE=0 # 動作確認コマンドの起動状態の戻り値
STOP_SUCCESS_CODE=0  # 動作確認コマンドの停止状態の戻り値
CHECK_RETRY_CODE=12  # 動作確認コマンドのリトライが必要な戻り値
DEBUG=
MSGID=               # メッセージID開始値
======================================================================

上記の各パラメーターの使用方法は以下の通りです。

以下の５つパラメーターは、スクリプトの内部で使用されるものです。ユーザ
ーはこれらの項目を変更してはいけません。

======================================================================
TAG=$APP
TTAG=
TIMEOUT=
STATUS=
DEBUG=
======================================================================

======================================================================
DEFAULT_TIMEOUT=22   # スクリプトタイムアウト値
START_SUCCESS_CODE=0 # 動作確認コマンドの起動状態の戻り値
STOP_SUCCESS_CODE=0  # 動作確認コマンドの停止状態の戻り値
CHECK_RETRY_CODE=12  # 動作確認コマンドのリトライが必要な戻り値
MSGID=	             # メッセージID開始値
======================================================================

上記の各パラメーターについて詳細をご説明します。

DEFAULT_TIMEOUT
　スクリプトのタイムアウト値を指定します。単位は秒です。初期値は22秒
　（quickCheckのみ12秒）です。後述の、"/etc/default/LifeKeeper" への
　タイムアウト設定を行っている場合は、"/etc/default/LifeKeeper" 内の
　設定が優先的に使用されます。

START_SUCCESS_CODE=0
　動作確認コマンド（前述の「保護対象パラメーター設定（ユーザー定義）」
　の、APP_CHECK[0]（または[1]）に指定したコマンド）における「起動中」
　のステータスを示す戻り値を設定してください。

STOP_SUCCESS_CODE
　動作確認コマンド（前述の「保護対象パラメーター設定（ユーザー定義）」
　の、APP_CHECK[0]（または[1]）に指定したコマンド）における「停止中」
　ステータスを示す戻り値を設定してください。

CHECK_RETRY_CODE
　動作確認コマンド（前述の「保護対象パラメーター設定（ユーザー定義）」
　の、APP_CHECK[0]（または[1]）に指定したコマンド）における「再チェッ
　クが必要」であることを示す戻り値を設定してください。

MSGID
　127000～127999 の中で任意の値を設定してください。


【/etc/default/LifeKeeperへのタイムアウト設定】

/etc/default/LifeKeeper に "タグ名_TIMEOUT" を入れると、スクリプトのタ
イムアウト値を調整することができます。この場合、quickCheckスクリプトに
は ("タグ名_TIMEOUT" -10) 秒が適用され、その他は値は指定したままの秒数
が適用されます。なお、タイムアウトは全て障害扱いとなり、ローカルリカバ
リー（ローカルリカバリーが無ければフェイルオーバー）の対象となります。

例：TAG名がAPP1であり、タイムアウト値に60秒を指定する場合。
　　========================================
　　/etc/default/LifeKeeper
　　APP1_TIMEOUT=60
　　========================================


【/etc/default/LifeKeeperへのデバッグモード設定】

/etc/default/LifeKeeper に "タグ名_DEBUG=1" を入れると、スクリプトのデ
バッグモードを有効になり、「set -x」が付与された状態で実行されます。

例：TAG名がAPP1であり、デバッグモードを有効化する場合。
　　========================================
　　/etc/default/LifeKeeper
　　APP1_DEBUG=1
　　========================================


【権利について】

restore、remove、recover、quickCheckの各スクリプトおよび本文書の著作権
は、サイオステクノロジーが保持します。


以上
