System Reliability Manager に含まれるスクリプトリポジトリおよびスクリプト起動用ウィンドウモジュールでは、リモートデバイス上で任意の管理タスクを実行するスクリプトを実行できます。リモートデバイス上でスクリプトを実行することで、中央の管理ステーションにおける処理の負荷を軽減できます。さらに、ポーリングをローカルにしておくためのメカニズムも提供します。
この章の内容は次のとおりです。
スクリプトリポジトリモジュールでは、スクリプト起動用ウィンドウモジュールによって実行されるエージェントマシン上で利用可能なスクリプトを見ることができます。また、スクリプトリポジトリモジュールは、スクリプト起動用ウィンドウモジュールがサポートする言語もリストします。
サポートされる言語をリストする言語テーブル。現行では、Java および shell スクリプトが含まれます。
エージェント上で利用可能なスクリプトを表示できるスクリプトテーブル。
スクリプトリポジトリモジュールのセキュリティは、次のように実装されます。
root ユーザーのみが以下のディレクトリにスクリプトを置けます。
/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts
各スクリプトで、そのスクリプトの実行を許可するユーザーとグループを指定します。これらのユーザーとグループは、スクリプト設定ファイル内のユーザーおよびグループのエントリとして指定します。さらに、これらのフィールドは、スクリプトテーブルにより任意のコンソールから変更が可能です。これらのフィールドを変更できるのは、esadm ユーザーのみです。
root は、スクリプトテーブルのスクリプトユーザーフィールドに登録できません。
モジュールをロードします。
モジュールのロードとアンロードの詳細については、『Sun Management Center 3.5 ユーザーガイド』を参照してください。スクリプトリポジトリモジュールは、階層ウィンドウの「ローカルアプリケーション」から利用可能です。
モジュールブラウザウィンドウで、「ローカルアプリケーション」をダブルクリックします。
カテゴリが展開されます。
「ローカルアプリケーション」で、「スクリプトリポジトリ」をダブルクリックします。
カテゴリが展開されます。
スクリプト情報フォルダをダブルクリックして、言語テーブルとスクリプトテーブルを表示します。
スクリプト情報グループの最初の表は、言語テーブルです。この表には、エージェントでサポートされるすべてのスクリプト言語がリストされます。各表エントリには、次の属性があります。
言語名(例: Java)
言語ソース(例: /usr/java)
この表ではコマンドは利用できません。新しい言語を指定したり、言語を削除することはできません。エントリの数は固定であり、実装するモジュールとサポートされる言語によって定義されます。
言語ソースは、セルに新しい情報を入力することにより変更できます。
System Reliability Manager は、指定した場所で言語を見つけることができない場合に情報 (INFO) アラームを生成します。
スクリプトテーブルには、エージェント上でスクリプト起動用ウィンドウが認識するすべてのスクリプトがリストされます。表内の各エントリには、以下に示す属性があります。
表 5–1 スクリプトテーブルの値
ブラウザを使用して変更できるフィールドは、「管理状態」、「ユーザー」、および「グループ」です。「管理状態」は、スクリプトの希望する状態を入力する領域です。たとえば、「管理状態」は有効または無効にできます。ここで指定した状態は、希望する状態であり、モジュールが、すべての基準が満たされ準備ができたと判断した後は、「操作状態」のみが実際の状態を表します。
スクリプトがサポートされない言語の場合は、情報 (INFO) アラームが発行されます。
スクリプトがアクセス不可能な場合は、情報 (INFO) アラームが発行されます。
ScriptInfo.dat は、実行可能なスクリプトに関する情報を含んでいます。ScriptInfo.dat ファイルに新しいスクリプトを追加することで、モジュールはそのスクリプトを認識できるようになります。ユーザーが所有するすべてのスクリプトが、このファイルに登録されている必要があります。
新しいスクリプトを書きます。
ScriptInfo.dat ファイルの書式は、設定ファイルの標準の書式に従います。
slice:attribute=value
新しいスクリプトを ScriptInfo.dat ファイルにコピーします。
ScriptInfo.dat ファイルは、ユーザー名で識別されるディレクトリに置きます。次の例を参照してください。
/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/username/ScriptInfo.dat
スクリプトに関する情報がすでにこのファイルに含まれている場合は、現行の情報の下にスクリプトを追加します。
ScriptInfo.dat ファイルの以下の例では、2 つのスクリプトが含まれています。
Script1:Owner = Scott Script1:Name = MyHello Script1:Desc = Says Hello Script1:Language = Java1.2 Script1:Source = Hello.class Script1:AdminStat = 1 Script1:OperStat = 1 Script1:Users = Noble Script1:Group = Staff Script2:Owner = Denise Script2:Name = MyFile Script2:Desc = Says Hello Script2:Language = Java1.2 Script2:Source = Hello.class Script2:AdminStat = 1 Script2:OperStat = 1 Script2:Users = Noble Script2:Group = Staff
スクリプト起動用ウィンドウモジュールにより、管理機能をエージェントに委任できます。管理機能は、管理スクリプト言語で書かれた管理スクリプトです。スクリプト起動用ウィンドウモジュールは、マルチインスタンスモジュールです。スクリプト起動用ウィンドウモジュールのすべてのインスタンスが、言語およびスクリプト情報について、同じスクリプトリポジトリモジュールにアクセスします。
起動テーブル – 実行可能なスクリプトとそのパラメータを示します。
結果テーブル – 選択したスクリプトの実行結果を表示できます。
スクリプト起動用ウィンドウモジュールでは、以下のようにスクリプトを操作できます。
スクリプトリポジトリモジュールのスクリプトに対して、読み取り、書き込み、および実行が許可されるユーザーを制御します。
管理スクリプトの引数を指定します。
管理スクリプトを開始および終了します。
管理スクリプトの実行を監視し制御します。
管理スクリプトの実行により生成された結果を表示します。
スクリプトの読み取り、書き込み、実行が許可されるユーザーを制御します。
スクリプト起動用ウィンドウモジュールのセキュリティは、以下のように実装されます。
root は、起動テーブルの起動所有者フィールドの一部に登録できません。マシンの root ユーザーがスーパーユーザーとしてスクリプトを実行できるようにするには、マシン上に新しいユーザーを作成してください。そのユーザー名を使用してスクリプトを実行します。
起動所有者 は、サーバー上の新しい esscrusers グループの一部でなければなりません。esscrusers だけが起動テーブルで行の作成および変更を行うことができます。
起動所有者は、エージェントマシン上の有効なユーザーでなければなりません。ユーザーは、エージェント上の NIS などのサービスによって追加されたローカルユーザーでなければなりません。スクリプトは、起動所有者のアクセス権で実行されます。
モジュールをロードします。
詳細については、『Sun Management Center 3.5 ユーザーガイド』を参照してください。スクリプトリポジトリモジュールは、モジュールブラウザウィンドウの「ローカルアプリケーション」から利用可能です。
モジュールブラウザウィンドウで、「ローカルアプリケーション」をダブルクリックします。
「スクリプト起動用ウィンドウ」をダブルクリックします。
スクリプト起動用ウィンドウは、起動テーブルと結果テーブルを表示します。
起動テーブルは、すべてのスクリプトの実行を制御します。この表には、実行可能なスクリプトとそのパラメータの記述が示されています。
起動テーブルのエントリは、スクリプトに引数を付加します。エントリはさらに所有者 (スクリプトを実行するアクセス権に関連付けられた) を定義します。
スクリプトのいくつかのインスタンスは、この表内の単一エントリによって作成されます。この表内のいくつかのエントリは、スクリプトテーブル内の同一スクリプトを指すことがあります。異なる引数と異なるアクセス権で、いくつかの同一スクリプトを実行することができます。スクリプトは、起動所有者のアクセス権でのみ実行できます。
表 5–2 起動テーブルの属性
スクリプト起動用ウィンドウモジュールにアクセスするの説明に従って、起動テーブルにアクセスします。
起動テーブルの見出しで、マウスボタン 3 を押します。
ポップアップメニューが表示されます。
「新規行」を選択し、必須パラメータをすべて指定します。
スクリプト所有者およびスクリプト名の値は、この起動ボタンから開始されたスクリプトを指します。
スクリプト起動用ウィンドウモジュールにアクセスするの説明に従って、起動テーブルにアクセスします。
起動対象のスクリプト名を表示している行上でマウスボタン 3 を押します。
「スクリプトを起動」を選択します。
スクリプトが起動されます。
スクリプト起動用ウィンドウモジュールにアクセスするの説明に従って、起動テーブルにアクセスします。
停止するスクリプトを表示している行上でマウスボタン 3 を押します。
ポップアップメニューが現れます。
「スクリプトを中止」を選択します。
スクリプトは実行を停止します。
結果テーブルには、現在実行中または最近終了したすべてのスクリプトがリストされます。このテーブルには、次の情報が含まれています。
スクリプトの実行が開始された時刻と終了した時刻
スクリプトの実行が終了した理由
スクリプトの実行結果
スクリプトが実行できる残り時間
結果テーブルの各行に、スクリプトの実行中に渡された引数、スクリプトによって生成された結果、およびスクリプトの終了コードが含まれています。また、結果テーブルは、現在の実行情況、開始と終了のタイムスタンプに関する情報を提供します。
表 5–3 結果テーブルの属性
スクリプトリポジトリモジュールにアクセスするの説明に従って、結果テーブルにアクセスします。
結果テーブルで、実行中のスクリプトエントリ上でマウスボタン 3 を押します。
ポップアップメニューが表示されます。
「結果ログを表示」を選択して、選択した実行中のスクリプトに対応する結果ログファイルを表示します。
探索表示ウィンドウが現れて、結果ログが表示されます。
コマンド行からログファイルにアクセスすることもできます。ログファイルは、/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/ UserName/logs ディレクトリに保存されます。ログファイル名には、実行中のインスタンス名が含まれるため、ユーザーが同じスクリプトを何度か実行した場合に、現行のログファイルがどれか識別できます。
スクリプトリポジトリモジュールにアクセスするの説明に従って、結果テーブルにアクセスします。
結果テーブルの行上でマウスボタン 3 を押します。
ポップアップメニューが表示されます。
「行の削除」を選択します。
ダイアログボックスが現れ、削除操作の確認または取り消しを行います。
「はい」をクリックして削除します。
行が削除されると、結果テーブルは自動的に更新されます。