Sun Cluster データサービス開発ガイド (Solaris OS 版)

第 9 章 Sun Cluster Agent Builder

この章では、Sun Cluster Agent Builder と、Agent Builder 用の Cluster Agent モジュールについて説明します。これらのツールは、Resource Group Manager (RGM) の制御下で動作するリソースタイプ (データサービス) の作成を自動化するものです。「リソースタイプ」とは、アプリケーションが RGM の制御下にあるクラスタ環境で動作できるようにするアプリケーションのラッパーのことです。

この章の内容は次のとおりです。

Agent Builder の概要

Agent Builder は、アプリケーションや作成するリソースタイプの種類に関する情報を入力するためのグラフィカルユーザーインタフェース (GUI) を提供します。Agent Builder は、ネットワーク対応のアプリケーションとネットワーク対応でないアプリケーション (非ネットワーク対応アプリケーション) をサポートします。ネットワーク対応アプリケーションは、ネットワークを使用してクライアントとの通信を行います。非ネットワーク対応アプリケーションは、スタンドアロンのアプリケーションです。


注 –

GUI バージョンの Agent Builder にアクセスできない場合は、コマンド行インタフェースを使用して Agent Builder にアクセスできます。「コマンド行バージョンの Agent Builder を使用する方法」を参照してください。


Agent Builder は、指定された情報にもとづき、次のソフトウェアを生成します。

Agent Builder を使って、プロセス監視機能 (PMF) によって個別に監視および再起動される複数の独立したプロセスツリーを持つアプリケーション用のリソースタイプを生成できます。

Agent Builder の使用にあたって

Agent Builder を使用する場合は、独立した複数のプロセスツリーを持つリソースタイプの作成方法をあらかじめ認識しておく必要があります。

Agent Builder は、複数の独立したプロセスツリーを持つアプリケーション用のリソースタイプを作成できます。これらのプロセスツリーは、RMF によって監視と起動が個別に行われるという意味でそれぞれ独立していると言えます。PMF は、独自のタグを使用して各プロセスツリーを起動します。


注 –

Agent Builder を使って、複数の独立したプロセスツリーをもつリソースタイプを作成できますが、そのためには、生成されるソースコードとして C か GDS を指定する必要があります。Agent Builder を使って、このようなリソースタイプを Korn シェル用に作成することはできません。Korn シェル用にこれらのリソースタイプを作成するには、それらのコードを手動で作成する必要があります。


複数の独立したプロセスツリーを持つベースアプリケーションの場合、1 つのコマンド行だけでアプリケーションを起動することはできません。代わりに、アプリケーションの各プロセスツリーを起動するコマンドへの完全パスを行ごとに記述したテキストファイルを作成します。このファイルには空白行を含めることはできません。そして、このファイルへのパスを Agent Builder 構成画面の「起動コマンド」テキストフィールドに指定します。

このファイルに実行権を設定しないことで、Agent Builder はこのファイルを識別できます。このファイルは、複数のコマンドが入ったシンプルな実行可能スクリプトから複数のプロセスツリーを起動するためのものです。このテキストファイルに実行権を設定しても、リソースはクラスタ上で問題なく動作するように見えます。しかし、すべてのコマンドが 1 つの PMF タグ下で起動されるため、PMF はプロセスツリーの監視と再起動を個別に行うことができません。

Agent Builder の使用

この節では、Agent Builder の使用方法について説明します。また、Agent Builder を使用する前に実施すべき作業についても説明しています。リソースタイプコードを生成したあとで Agent Builder を活用する方法についても説明します。

この章では、以下の内容について説明します。

アプリケーションの分析

Agent Builder を使用する前に、高可用アプリケーションまたはスケーラブルアプリケーションにしようとしているアプリケーションが必要な条件を満たしているかを確認します。この分析はアプリケーションの実行時特性だけに基づくものなので、Agent Builder はこの分析を行うことができません。詳細は、「アプリケーションの適合性の分析」を参照してください。

Agent Builder を使用しても、アプリケーションに適した完全なリソースタイプを必ず作成できるとはかぎりません。しかし、一般に Agent Builder は少なくとも部分的なソリューションにはなります。たとえば、比較的機能の高いアプリケーションでは、Agent Builder がデフォルトでは生成しないコード (プロパティーの妥当性検査を追加するコードや Agent Builder がエクスポーズしないパラメータを調節するコードなど) を別途生成する必要が生じる場合があります。このような場合、生成されたコードまたは RTR ファイルを修正する必要があります。Agent Builder は、まさにこのような柔軟性をもたらすように設計されています。

Agent Builder は、生成されるソースコードの特定の場所にコメントを埋め込みます。ユーザーは、この場所に独自のリソースタイプコードを追加できます。ソースコードを修正したあと、Agent Builder が生成した Makefile を使用すれば、ソースコードを再コンパイルし、リソースタイプパッケージを生成し直すことができます。

Agent Builder が生成したリソースタイプコードを使用せずに、リソースタイプコードを完全に作成し直す場合でも、Agent Builder が生成した Makefile やディレクトリ構造を使用すれば、独自のリソースタイプ用の Solaris パッケージを作成できます。

Agent Builder のインストールと構成

Agent Builder を個別にインストールする必要はありません。Agent Builder は、Sun Cluster ソフトウェアのインストール時にデフォルトでインストールされる SUNWscdev パッケージに含まれます。詳細は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』を参照してください。

Agent Builder を使用する前に、次の要件を確認してください。


注 –

Agent Builder では、標準の cc コンパイラ以外のコンパイラも使用できます。別のコンパイラを使用するためには、そのコンパイラ (gcc など) に対するシンボリックリンクを $PATH 内に指定します。あるいは、Makefile におけるコンパイラ指定 (現在は CC=cc) を変更し、別のコンパイラへの完全パスを指定することもできます。たとえば、Agent Builder により生成される Makefile の中で、CC=ccCC=pathname/gcc に変更します。この場合、Agent Builder を直接実行することはできません。代わりに、makemake pkg コマンドを使用して、データサービスコードとパッケージを生成する必要があります。


Agent Builder 画面

Agent Builder は 2 つのステップ (画面) からなるウィザードです。

    Agent Builder では、次の 2 つの画面を使用して、新しいリソースタイプを作成します。

  1. 作成画面」この画面では、作成するリソースタイプについての基本情報 (リソースタイプの名前や生成されるファイルの作業用ディレクトリなど) を指定します。作業ディレクトリは、リソースタイプテンプレートの作成や構成に使用する場所です。

    次の情報も指定します。

    • 作成するリソースの種類 (スケーラブルまたはフェイルオーバー)

    • ベースアプリケーションがネットワーク対応かどうか (つまり、そのクライアントとの通信にネットワークを使用するか)

    • 生成するコードのタイプ (C、Korn シェル (ksh)、または GDS)

    GDS の詳細は、第 10 章「汎用データサービス」を参照してください。この画面の情報はすべて指定する必要があります。指定後、「作成」を選択してその出力を生成します。この後「構成」画面を表示できます。

  2. 構成画面」この画面には、ベースアプリケーションを起動するために任意の UNIX シェルに渡すことができる完全なコマンド行を指定する必要があります。オプションとして、アプリケーションを停止するコマンドや検証するコマンドも提供できます。これらの 2 つのコマンドを指定しないと、生成される出力は信号を送信してアプリケーションを停止し、デフォルトの検証メカニズムを提供します。検証コマンドの説明は、「構成画面の使用」を参照してください。「構成」画面では、起動コマンド、停止コマンド、および検証コマンドのタイムアウト値の変更も行えます。

Agent Builder の起動


注 –

GUI バージョンの Agent Builder にアクセスできない場合は、コマンド行インタフェースを使用して Agent Builder にアクセスできます。「コマンド行バージョンの Agent Builder を使用する方法」を参照してください。


既存のリソースタイプの作業ディレクトリから Agent Builder を起動すると、このツールは「作成」画面と「構成」画面を既存のリソースタイプの値に初期化します。

Agent Builder は次のコマンドを入力して起動します。


% /usr/cluster/bin/scdsbuilder

「作成」画面が表示されます。

図 9–1 Agent Builder の「作成」画面

「Sun Cluster Agent Builder」ダイアログ - Agent Builder メイン画面

Agent Builder のナビゲーション

「作成」画面と「構成」画面の情報は、次の操作で入力します。

各画面の下にあるボタンを使用すると、作業を完了したり、次の画面に進んだり、以前の画面に戻ったり、Agent Builder を終了したりできます。Agent Builder は、必要に応じてこれらのボタンを強調表示にしたり、グレー表示にしたりします。

たとえば、「作成」画面で必要なフィールドに入力し、希望するオプションを選択してから、画面の下にある「作成」ボタンをクリックします。この時点で、以前の画面は存在しないので、「戻る」ボタンはグレー表示されます。また、この作業が完成するまで次の手順には進めないので、「進む」ボタンもグレー表示されます。

「作成」、「戻る」、「進む」、「キャンセル」コマンドを示す画面下部のパネル

Agent Builder は、画面の下にある「出力ログ」領域に進捗メッセージを表示します。作業が終了したとき、Agent Builder は成功メッセージまたは警告メッセージを表示します。「進む」が強調表示されます。あるいは、これが最後の画面の場合は、「キャンセル」だけが強調表示されます。

「キャンセル」ボタンをクリックすると、任意の時点で Agent Builder を終了できます。

「ブラウズ」コマンド

Agent Builder のフィールドには、そのフィールドに情報を入力できるものや、「ブラウズ」をクリックしてディレクトリ構造内をブラウズし、ファイルまたはディレクトリを選択できるものなどがあります。

「ブラウズ」コマンド

「ブラウズ」をクリックすると、次のような画面が表示されます。

「ブラウズ」画面 - ファイルを一覧表示した状態

フォルダをダブルクリックすると、フォルダが開きます。カーソルをファイルに移動させると、「ファイル名」フィールドにファイルの名前が表示されます。必要なファイルを見つけ、そこにカーソルを移動したら、「選択」をクリックします。


注 –

ディレクトリをブラウズする場合は、必要なディレクトリにカーソルを移動し、「開く」をクリックします。ディレクトリにサブディレクトリがない場合、Agent Builder はブラウズウィンドウを閉じて、ユーザーがカーソルを移動したディレクトリの名前を適切なフィールドに表示します。サブディレクトリがある場合、「閉じる」をクリックすると、ブラウズウィンドウが閉じて、以前の画面に戻ります。Agent Builder は、ユーザーがカーソルを移動したディレクトリの名前を適切なフィールドに表示します。


「ブラウズ」画面の右上隅にあるアイコンには、次のような処理を行います。

アイコン 

目的 

上向き矢印アイコン

ディレクトリツリーの 1 つ上のレベルに移動します。 

家のイラスト付きアイコン

ホームフォルダに戻ります。 

新しいフォルダのアイコン

現在選択しているフォルダの下に新しいフォルダを作成します。 

表示方式を変更するアイコン

ビューを切り替えます。将来のために予約されています。 

Agent Builder のメニュー

Agent Builder には、ドロップダウンメニューとして「ファイル」メニューと「編集」メニューがあります。

Agent Builder の「ファイル」メニュー

「ファイル」メニューでは、次の 2 つのオプションを使用できます。

Agent Builder の「編集」メニュー

「編集」メニューでは、次の 2 つのオプションを使用できます。

作成画面の使用

リソースタイプを作成する最初の段階では、Agent Builder を起動したときに表示される「作成」画面に必要な情報を入力します。次の図は、フィールドに情報を入力したあとの「作成」画面を示しています。

図 9–2 Agent Builder の「作成」画面 (情報の入力後)

情報が入力されたあとの「作成」画面を示すダイアログボックス

作成画面には、次のフィールド、ラジオボタン、およびチェックボックスがあります。


注 –

cc コンパイラが $PATH 変数に含まれていないと、Agent Builder は「C」ラジオボタンをグレー表示し、「ksh」ラジオボタンを選択可能にします。別のコンパイラを指定する方法については、「Agent Builder のインストールと構成」の最後にある注記を参照してください。


必要な情報を入力したあと、「作成」をクリックします。画面の一番下にある「出力ログ」領域には、Agent Builder が行なったアクションが表示されます。「編集」メニューの「出力ログを保存」を使用すれば、出力ログ内の情報を保存できます。

これが終わると、Agent Builder は、成功メッセージか警告メッセージを表示します。


注 –

完全なリソースタイプを生成するには 2 段階の作業が必要ですが、最初の段階 (つまり、作成) が完了したあとに Agent Builder を終了しても、指定した情報や Agent Builder で作成した内容が失われることはありません。「Agent Builder で作成したコードの再利用」を参照してください。


構成画面の使用

リソースタイプを作成する最初の段階では、Agent Builder を起動したときに表示される「作成」画面に必要な情報を入力します。すると、次の画面が表示されます。リソースタイプの作成が完了していなければ、構成画面にはアクセスできません。

図 9–3 Agent Builder の「構成」画面

構成画面

構成画面には、次のフィールドがあります。

Agent Builder の Korn シェルベース $hostnames 変数の使用

多くのアプリケーション (特に、ネットワーク対応アプリケーション) では、アプリケーションが通信し、顧客の要求に対してサービスを提供するホスト名をコマンド行に指定して、アプリケーションに渡す必要があります。多くの場合、ホスト名は、構成画面において、ターゲットリソースタイプの起動、停止、および検証コマンドに指定する必要がある引数です。しかし、アプリケーションが待機するホスト名はクラスタ固有のものです。つまり、ホスト名はリソースがクラスタで実行されるときに決められ、Agent Builder がリソースタイプコードを生成する時点で決めることはできません。

この問題を解決するために、Agent Builder は $hostnames 変数を提供します。この変数を使用すると、起動、停止、および検証コマンドのコマンド行にホスト名を指定できます。


注 –

$hostnames 変数は、Korn シェルベースのサービスでのみサポートされます。つまり、C ベースや GDS ベースのサービスではサポートされません。


$hostnames 変数を指定する方法は、実際のホスト名を指定する方法と同じです。たとえば、次のようになります。


% /opt/network_aware/echo_server -p port-no -l $hostnames

ターゲットリソースタイプのリソースがあるクラスタ上で動作するとき、そのリソースに構成されている LogicalHostname または SharedAddress ホスト名が $hostnames 変数の値に置き換えられます。リソースのホスト名は、Network_resources_used リソースのリソースプロパティーで構成されます。

Network_resources_used プロパティーに複数のホスト名を構成している場合、すべてのホスト名をコンマで区切って $hostnames 変数に指定します。

プロパティー変数の使用

プロパティー変数を使用すれば、Sun Cluster のリソースタイプ、リソース、リソースグループの一部のプロパティーの値を RGM フレームワークから取り出すことができます。Agent Builder は起動、検証、停止のコマンド文字列をスキャンしてプロパティー変数がないかをチェックし、プロパティー変数があればコマンドを実行する前にそれらの変数を対応する値に置き換えます。


注 –

プロパティー変数は、Korn シェルベースのサービスではサポートされません。


プロパティー変数のリスト

この節では、使用できるプロパティー変数を示します。Sun Cluster のリソースタイプ、リソース、リソースグループのプロパティーについては、付録 A 「標準プロパティー」 を参照してください。

リソースプロパティー変数

リソースタイププロパティー変数

リソースグループプロパティー変数

プロパティー変数の構文

プロパティー変数を指定する場合は、プロパティー名の前にパーセント符号 (%) を指定します。次はその例です。

/opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST

上の例の場合、Agent Builder はこれらのプロパティー変数を解釈し、たとえば、次の値を使って echo_server スクリプトを起動します。

/opt/network_aware/echo_server -t 300 -n phys-node-1,phys-node-2,phys-node-3

Agent Builder によるプロパティー変数の置き換え

Agent Builder では、プロパティー変数のタイプは次のように解釈されます。

Agent Builder で作成したコードの再利用

Agent Builder を使用すると、次のような方法で、完成した作業内容を再利用できます。

Procedure既存のリソースタイプからクローンを作成する方法

Agent Builder で作成した既存のリソースタイプのクローンを作成するには、次の手順に従います。

  1. 既存のリソースタイプを Agent Builder にロードします。

    次のいずれかの方法を実行します。

    • Agent Builder で作成された既存のリソースタイプの作業ディレクトリから Agent Builder を起動します。作業ディレクトリに rtconfig ファイルが含まれているか確認します。Agent Builder がこのリソースタイプの値を「作成」や「構成」画面にロードします。

    • 「ファイル」ドロップダウンメニューの「リソースタイプをロード」オプションを使用します。

  2. 作成画面で作業ディレクトリを変更します。

    「ブラウズ」を使ってディレクトリを選択する必要があります。新しいディレクトリ名を入力するだけでは不十分です。ディレクトリを選択したあと、Agent Builder は「作成」ボタンを有効に戻します。

  3. 必要に応じて既存のリソースタイプに変更を加えます。

    リソースタイプ用に生成されたコードのタイプを変更できます。

    たとえば、初めに Korn シェルバージョンのリソースタイプを作成し、あとで C バージョンのリソースタイプが必要になった場合には、次の手順で対応できます。

    • 既存の Korn シェルリソースタイプをロードする

    • 出力用の言語を C に変更する

    • 「作成」をクリックしてリソースタイプの C バージョンを構築する

  4. リソースタイプのクローンを作成します。

    1. 「作成」をクリックして、リソースタイプを作成します。

    2. 「次へ」をクリックして「構成」画面を表示します。

    3. 「構成」をクリックしてリソースタイプを構成し、次に「キャンセル」をクリックして終了します。

生成されたソースコードの編集

リソースタイプを作成するプロセスを簡単にするために、Agent Builder は入力できる情報量を制限しています。必然的に、生成されるリソースタイプの範囲も制限されます。したがって、より複雑な機能を追加するには、生成されたソースコードまたは RTR ファイルを修正する必要があります。付加的な機能の例としては、プロパティーの妥当性検査を追加するコードや、Agent Builder がエクスポーズしないパラメータを調節するコードなどが挙げられます。

ソースファイルは、install-directory/ rt-name/src ディレクトリに置かれます。Agent Builder は、ソースコード内においてコードを追加できる場所にコメント文を埋め込みます。このようなコメントの形式は次のとおりです (C コードの場合)。

/* User added code -- BEGIN vvvvvvvvvvvvvvv */
/* User added code -- END   ^^^^^^^^^^^^^^^ */

注 –

コメントは Korn シェルソースコードのものと同じですが、Korn シェルソースコードの場合は、コメント記号 (#) がコメントの始めを表します。


たとえば、rt-name.h は、さまざまなプログラムが使用するユーティリティー関数をすべて宣言します。宣言リストの最後はコメント文になっており、ここでは自分のコードに追加したい関数を宣言できます。

install-directory /rt-name/src ディレクトリには、対応するターゲットと共に Makefile も生成されます。make コマンドを使用すると、ソースコードを再コンパイルできます。make pkg コマンドを使用すると、リソースタイプパッケージを生成し直すことができます。

RTR ファイルは、install-directory/ rt-name/etc ディレクトリに置かれます。RTR ファイルは、普通のテキストエディタで編集できます。RTR ファイルの詳細は、「リソースとリソースタイププロパティーの設定」を参照してください。プロパティーについては、付録 A 「標準プロパティー」を参照してください。

Procedureコマンド行バージョンの Agent Builder を使用する方法

コマンド行バージョンの Agent Builder でも、GUI と同様の基本手順を使用します。ただし、GUI では情報を入力しましたが、コマンド行インタフェースでは scdscreatescdsconfig コマンドに引数を渡します。詳細は、scdscreate(1HA)scdsconfig(1HA) のマニュアルページを参照してください。

コマンド行バージョンの Agent Builder の使用方法は次のとおりです。

  1. アプリケーションに高可用性またはスケーラビリティーを持たせるため、scdscreate を使って Sun Cluster リソースタイプテンプレートを作成します。

  2. scdsconfig を使って、scdscreate で作成したリソースタイプテンプレートを構成します。

    プロパティー変数を指定できます。プロパティー変数については、「プロパティー変数の使用」を参照してください。

  3. 作業ディレクトリの pkg サブディレクトリに移動します。

  4. pkgadd コマンドを実行して、scdscreate で作成したパッケージをインストールします。


    # pkgadd -d . package-name
    
  5. (省略可能) 生成されたソースコードを編集します。

  6. 起動スクリプトを実行します。

Agent Builder で作成されるディレクトリ構造

Agent Builder は、ターゲットリソースタイプ用に生成するすべてのファイルを格納するためのディレクトリ構造を作成します。「作成」画面で作業ディレクトリを指定します。開発するリソースタイプごとに異なるインストールディレクトリを指定する必要があります。Agent Builder は、作業ディレクトリの下に、ベンダー名とリソースタイプ名を連結した名前を持つサブディレクトリを作成します。たとえば、SUNW というベンダー名を指定し、ftp というリソースタイプを作成した場合、Agent Builder は SUNWftp というディレクトリを作業ディレクトリの下に作成します。

Agent Builder は、このサブディレクトリの下に、次のようなディレクトリを作成し、各ディレクトリにファイルを配置します。

ディレクトリ名 

目次 

bin

C 出力の場合、ソースファイルからコンパイルしたバイナリファイルが格納されます。Korn シェル出力の場合、src ディレクトリと同じファイルが格納されます。

etc

RTR ファイルが格納されます。Agent Builder は、ベンダー名とアプリケーション名をピリオド区切り (.) で結合して RTR ファイル名を作成します。たとえば、ベンダー名が SUNW で、リソースタイプ名が ftp である場合、RTR ファイル名は SUNW.ftp となります。

man

startstop、および remove ユーティリティースクリプト用にカスタマイズされたマニュアルページが格納されます。たとえば、startftp(1M)、stopftp(1M)、および removeftp(1M) が格納されます。

 

これらのマニュアルページを見る場合は、man -M オプションでこのパスを指定します。次に例を示します。


% man -M install-directory/SUNWftp/man removeftp

pkg

作成されたデータサービスが含まれる最終的な Solaris パッケージが格納されます。 

src

Agent Builder によって生成されたソースファイルが格納されます。 

util

Agent Builder によって生成された startstop、および remove ユーティリティースクリプトが格納されます。「Sun Cluster Agent Builder で作成されるユーティリティースクリプトとマニュアルページ」を参照してください。Agent Builder は、これらのスクリプト名にアプリケーション名を追加します。たとえば、startftpstopftp、および removeftp のようになります。

Agent Builder の出力

この節では、Agent Builder の出力について説明します。

この章の内容は次のとおりです。

ソースファイルとバイナリファイル

Resource Group Manager (RGM) は、リソースグループを管理し、最終的にはクラスタ上のリソースを管理します。RGM は、コールバックモデル上で動作します。つまり、特定のイベント (ノードまたはゾーンの障害など) が発生したとき、RGM は、当該ノードまたはゾーン上で動作しているリソースごとにリソースタイプのメソッドを呼び出します。たとえば、RGM は Stop メソッドを呼び出して、当該ノードまたはゾーン上で動作しているリソースを停止します。次に、Stop メソッドを呼び出して、異なるノードまたはゾーン上でリソースを起動します。このモデルの詳細は、「RGM モデル」「コールバックメソッド」と、rt_callbacks(1HA) のマニュアルページを参照してください。

このモデルをサポートするために Agent Builder は、8 つの実行可能 C プログラムまたは Korn シェルスクリプトを install-directory/rt-name/bin ディレクトリに生成します。これらのプログラムまたはシェルスクリプトは、コールバックメソッドとして機能します。


注 –

厳密には、障害モニターを実装する rt-name_probe プログラムはコールバックプログラムではありません。RGM は、rt-name_probe を直接呼び出すのではなく、rt-name_monitor_start rt-name_monitor_stop を呼び出します。これらのメソッドが rt-name_probe を呼び出すことによって、障害モニターの起動と停止が行われます。


Agent Builder が生成する8 つのメソッドは次のとおりです。

各メソッドに固有な情報については、rt_callbacks(1HA) のマニュアルページを参照してください。

Agent Builder は、install-directory/ rt-name/src ディレクトリ (C 出力の場合) に、次のファイルを生成します。

Agent Builder は、rt-name.o ファイルを各メソッドの .o ファイルにリンクして、実行可能ファイルを install-directory/rt-name /bin ディレクトリに作成します。

Korn シェル出力の場合、install-directory/ rt-name/bin ディレクトリと install-directory /rt-name/src ディレクトリの内容は同じです。それぞれのディレクトリには、7 つのコールバックメソッドと Probe メソッドに対応する 8 つの実行可能スクリプトが含まれています。


注 –

Korn シェル出力には、2 つのコンパイル済みユーティリティープログラム gettimegethostnames が含まれています。これらのプログラムは、特定のコールバックメソッドが時間の取得や、検証を行う際に必要です。


ソースコードを編集して、make コマンドを実行すると、コードを再コンパイルできます。さらに、再コンパイル後、make pkg コマンドを実行すると、新しいパッケージを生成できます。ソースコードの修正をサポートするために、Agent Builder はソースコード中の適切な場所に、コードを追加するためのコメント文を埋め込みます。「生成されたソースコードの編集」を参照してください。

Sun Cluster Agent Builder で作成されるユーティリティースクリプトとマニュアルページ

リソースタイプを生成してそのパッケージをクラスタにインストールしたあとは、クラスタ上で実行されているリソースタイプのインスタンス (リソース) を取得する必要があります。一般に、リソースインスタンスを実行するには、管理コマンドまたは Sun Cluster Manager を使用します。しかし、便宜上 Agent Builder はこの目的のためにカスタマイズされたユーティリティースクリプトに加え、ターゲットリソースタイプのリソースの停止と削除を行うスクリプトも生成します。

これら 3 つのスクリプトは install-directory /rt-name/util ディレクトリに格納されており、次のような処理を行います。


注 –

これらのスクリプトは、内部的な規則を使用してリソースとリソースグループの名前付けを行います。このため、削除スクリプトを使用できるリソースは、対応する起動スクリプトで起動されたリソースだけです。


Agent Builder は、スクリプト名にアプリケーション名を追加することにより、スクリプトの名前付けを行います。たとえば、アプリケーション名が ftpの場合、各スクリプトは startftpstopftp、および removeftp になります。

Agent Builder は、各ユーティリティースクリプト用のマニュアルページを install-directory /rt-name/man/man1m ディレクトリに格納します。これらのマニュアルページにはスクリプトに渡す必要がある引数についての説明が記載されているので、各スクリプトを起動する前に、これらのマニュアルページをお読みください。

これらのマニュアルページを表示するには、-M オプションを指定して man コマンドを実行し、この man ディレクトリのパスを指定する必要があります。たとえば、ベンダーが SUNW で、アプリケーション名が ftp である場合、startftp(1M) のマニュアルページを表示するには、次のコマンドを使用します。


% man -M install-directory/SUNWftp/man startftp

クラスタ管理者は、マニュアルページユーティリティスクリプトも利用できます。Agent Builder で生成されたパッケージをクラスタ上にインストールすると、ユーティリティースクリプト用のマニュアルページは、/opt/rt-name/man ディレクトリに格納されます。たとえば、startftp(1M) のマニュアルページを表示するには、次のコマンドを使用します。


% man -M /opt/SUNWftp/man startftp

Agent Builder で作成されるサポートファイル

Agent Builder は、サポートファイル (pkginfo postinstallpostremovepreremove など) を install-directory/ rt-name/etc ディレクトリに格納します。このディレクトリには、Resource Type Registration (RTR) ファイルも格納されます。RTR ファイルは、ターゲットリソースタイプが利用できるリソースとリソースタイププロパティーを宣言して、リソースをクラスタに登録するときにプロパティー値を初期化します。詳細は、「リソースとリソースタイププロパティーの設定」を参照してください。RTR ファイルの名前は、ベンダー名とリソースタイプ名をピリオドで区切って連結したものです (たとえば、SUNW.ftp)。

RTR ファイルは、ソースコードを再コンパイルしなくても、標準のテキストエディタで編集および修正できます。ただし、 make pkg コマンドを使用してパッケージを再構築する必要があります。

Agent Builder で作成されるパッケージディレクトリ

install-directory/ rt-name/pkg ディレクトリには、Solaris パッケージが格納されます。パッケージの名前は、ベンダー名とアプリケーション名を連結したものです (たとえば、SUNWftp)。install-directory/rt-name/src ディレクトリ内の Makefile は、新しいパッケージを作成するのに役立ちます。たとえば、ソースファイルを修正し、 コードを再コンパイルした場合、あるいは、パッケージユーティリティースクリプトを修正した場合、make pkg コマンドを使用して新しいパッケージを作成します。

パッケージをクラスタから削除する場合、複数のノードから同時に pkgrm コマンドを実行しようとすると、コマンドが失敗する可能性があります。

この問題を解決するには、次の 2 つの方法があります。

同時に複数のノードから pkgrm を実行しようとして失敗した場合は、1 つのノードでこのコマンドを実行し、その後残りのノードで実行します。

rtconfig ファイル

C または Korn シェルソースコードを作業ディレクトリ内に生成する場合、Agent Builder は構成ファイル rtconfig を生成します。このファイルには、「作成」画面と「構成」画面でユーザーが入力した情報が含まれます。既存のリソースタイプ用の作業ディレクトリから Agent Builder を起動すると、Agent Builder は rtconfig ファイルを読み取り、既存のリソースタイプに指定された情報を「作成」画面と「構成」画面に表示します。また、「ファイル」ドロップダウンメニューから「リソースタイプのロード」を選択して既存のリソースタイプをロードしても、Agent Builder は類似した動作を示します。この機能は、既存のリソースタイプのクローンを作成したい場合に便利です。「Agent Builder で作成したコードの再利用」を参照してください。

Agent Builder の Cluster Agent モジュール

Agent Builder の Cluster Agent モジュールは、NetBeansTM モジュールです。このモジュールには、Sun Java Studio (以前の Sun ONE Studio) 製品全般の Sun Cluster ソフトウェア用のリソースタイプを作成できる GUI が付属しています。


注 –

Sun Java Studio 製品の設定、インストール、使用の詳細は、Sun Java Studio マニュアルに記載されています。このマニュアルは、http://wwws.sun.com/software/sundev/jde/documentation/index.html Web サイトより参照できます。


ProcedureCluster Agent モジュールをインストールし設定する方法

Cluster Agent モジュールは、Sun Cluster ソフトウェアのインストール時にインストールされます。Sun Cluster のインストールツールは、Cluster Agent モジュールファイルを /usr/cluster/lib/scdsbuilderscdsbuilder.jar に配置します。Sun Java Studio ソフトウェアで Cluster Agent モジュールを使用するには、このファイルに対してシンボリックリンクを作成する必要があります。


注 –

Cluster Agent モジュールを実行する予定のシステムには、Sun Cluster 製品、Sun Java Studio 製品、および Java 1.4 がすでにインストールされ、使用可能な状況でなければなりません。


  1. ユーザー全員が Cluster Agent モジュールを使用できるようにするか、あるいは自分だけが使用できるようにします。

    • ユーザー全員が使用できるようにするには、スーパーユーザーになるか、RBAC 承認 solaris.cluster.modify を提供する役割を使用し、シンボリックリンクをグローバルモジュールディレクトリに作成します。


      # cd /opt/s1studio/ee/modules
      # ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar
      

      注 –

      Sun Java Studio ソフトウェアを /opt/s1studio/ee 以外のディレクトリにすでにインストールしてある場合は、このディレクトリパスを、使用したパスに読み替えてください。


    • 自分だけが使用できるようにするには、 自分の modules サブディレクトリにシンボリックリンクを作成します。


      % cd ~your-home-dir/ffjuser40ee/modules
      % ln -s /usr/cluster/lib/scdsbuilder/scdsbuilder.jar
      
  2. Sun Java Studio ソフトウェアを停止し、再起動します。

ProcedureCluster Agent モジュールを起動する方法

次に、Sun Java Studio ソフトウェアから Cluster Agent モジュールを起動する手順を示します。


注 –

Sun Java Studio 製品の設定、インストール、使用の詳細は、Sun Java Studio マニュアルに記載されています。このマニュアルは、http://wwws.sun.com/software/sundev/jde/documentation/index.html Web サイトより参照できます。


  1. Sun Java Studio の「ファイル」メニューから「新規」を選択するか、あるいはツールバーの「新規」アイコンをクリックします。

    Sun Java Studio ソフトウェアのツールバー上にある「新規」アイコンを示す図

    「新規ウィザード」画面が表示されます。

    「新規ウィザード」画面を示すダイアログボックス
  2. 「テンプレートを選択」区画で、必要に応じて下方向へスクロールし、「その他」フォルダの横に表示されている鍵マークをクリックします。

    「その他」フォルダのキーを示すインライングラフィック

    「その他」フォルダが開きます。

    「その他」フォルダメニューを広げたときの図
  3. 「その他」フォルダから Sun Cluster Agent Builder を選択し、「次へ」をクリックします。

    Sun Java Studio 起動のための Cluster Agent モジュール最初の「新規ウィザード - Sun Cluster Agent Builder」画面が表示されます。

    New Wizard Sun Cluster Agent Builder 画面が最初に表示されたときの画面を示すダイアログボックス

Cluster Agent モジュールの使用

Cluster Agent モジュールは、Agent Builder ソフトウェアと同様に使用できます。インタフェースは英語版の Agent Builder ソフトウェアと全く同じです。たとえば次の図では、英語版 Agent Builder ソフトウェアの「Create」画面と Cluster Agent モジュールの最初の「新規ウィザード - Sun Cluster Agent Builder」画面には同じフィールドと選択肢が存在することがわかります。

図 9–4 英語版 Agent Builder ソフトウェアの作成画面

情報を入力した後の作成画面を示すダイアログボックス

図 9–5 Cluster Agent モジュールの「新規ウィザード - Sun Cluster Agent Builder」画面

情報が入力された後の New Wizard Sun Cluster Agent Builder 画面が示すダイアログボックス

Cluster Agent モジュールと Agent Builder の違い

Cluster Agent モジュールと Agent Builder は似ていますが、小さな違いがいくつかあります。