この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この付録では、IMGW Device Module Development Toolkit を使用してデバイス モジュールを追加、更新、削除する方法を説明します。
プログラムはスクリプトまたはバイナリ プログラムです。次の形式のコマンドライン引数が必要です。
<plugin program> <temp_logfile_name> <logging_level> <device_id> <action_type> <warning_logifle_name> <error_logfile_name> <hop_information_string> <configuration_file_name> <persistence> <operation_timeout_value> <prompt_timeout_value>
<plugin program> <temp_logfile_name> <logging_level> <device_id> <action_type> <hop_information_string> <command_to_be_executed> <command_arguments> <exec_response_logfile_name> <operation_timeout_value> <prompt_timeout_value>
<plugin program> <temp_logfile_name> <logging_level> <device_id> <action_type> <hop_information_string> <operation_timeout_value> <prompt_timeout_value>
次に、現在サポートされているデバイス プログラムの引数とその説明を示します。プラグイン プログラムは渡された引数を別の意味に解釈することがあるので、必ずしも渡された引数をすべて使用するとは限りません。
plug-in program:IMGW ランタイムによって分岐された子プロセスで実行されるプラグイン プログラム。システム管理者が登録時にこの情報を IMGW ランタイムに提供します。
temp_logfile_name:デバイス モジュールの一時ログ ファイルへのフル パス。デバイス モジュールはこのパスを使用して、オペレーションの 1 つのインスタンス(設定のダウンロード、コマンドの実行、ホップのテスト)の処理履歴をログに記録する必要があります。デフォルトでは、このファイルは CNS 2100 Series システムの/tmpディレクトリにあります。プラグイン プログラムの終了後、IMGW ランタイムはこのファイルの内容をデバッグに使用するために
/opt/CSCOimgw/bin/IMGW-DEVMOD_LOGという集中ログ ファイルに記録し、このファイルをリンク解除します。
logging_level:値は、verbose、error、または silent を指定できます。このフラグは、CNS 2100 Series のシステムでセットアップ コマンドを実行することによって設定できます。デバイス モジュールが指定したロギング レベルに基づいて情報をファイル <temp_logfile_name> に記録するように設定することをお勧めします。
device_id:デバイス モジュールによって処理されるデバイスの ID。この ID は、
cisco.mgmt.cns.config.load または cisco.mgmt.cns.exec.cmdイベントによって渡されます。
action_type:config、exec、または hoptest を指定できます。アクション タイプ config を指定すると、デバイス モジュールはデバイス設定を更新するように通知されます。アクション タイプ exec を指定すると、デバイス モジュールはデバイスに対してコマンドを実行するように通知されます。アクション タイプ hoptest を指定すると、デバイス モジュールは、<hop_information_string> で提供されたホップ情報を使用してデバイスがアクセス可能であるかどうかをテストするように通知されます。デバイス モジュールは、このフラグに対して正確に処理される必要があります。
warning_logfile_name:すべての警告メッセージとそれと対応する設定コマンドの行番号を記録するためにデバイス モジュールによって使用されるファイルへのフル パス。このパラメータは、アクション タイプが config の場合にのみ、IMGW ランタイムによって提供されます。このファイルの情報は、設定が警告付きで成功した場合に cisco.mgmt.cns.config.load イベントへの応答メッセージを生成するためにのみ使用されるからです。IMGW ランタイムが適切な応答メッセージを生成するためには、各警告メッセージは新しい行で開始され、文字列 LINE <警告メッセージの原因となった設定コマンドの行番号>が先頭に付いている必要があります。警告ファイルの例を次に示します。
このファイルの場所は、CNS 2100 Series システムの /tmp の下です。プラグイン プログラムの終了後、IMGW ランタイムはこのファイルの内容を応答イベント ペイロードに置いてから、すぐにこのファイルをリンク解除します。
error_logfile_name:エラー メッセージの発生および対応する設定コマンドの行番号を記録するためにデバイス モジュールによって使用されるファイルへのフル パス。このパラメータは、アクション タイプが config の場合にのみ、IMGW ランタイムによって提供されます。このファイルの情報は、設定が失敗した場合に cisco.mgmt.cns.config.load イベントへの応答メッセージを生成するためにのみ使用されるからです。IMGW ランタイムが適切な応答メッセージを生成するためには、各エラー メッセージは新しい行で開始され、文字列 LINE <エラー メッセージの原因となった設定コマンドの行番号> が先頭に付いている必要があります。エラー ファイルの例を次に示します。
このファイルの場所は、CNS 2100 Series システムの /tmp の下です。プラグイン プログラムの終了後、IMGW ランタイムはこのファイルの内容を応答イベント ペイロードに置いてから、すぐにこのファイルをリンク解除します。
exec_response_logfile_name:デバイスに対するコマンド実行の出力を記録するために使用されるファイルへのフル パス。このパスは、アクション タイプが exec であり、CNS 2100 Series システムの /tmp にある場合にのみ、IMGW ランタイムによって提供されます。プラグイン プログラムの終了後、IMGW ランタイムはこのファイルの内容を応答イベント ペイロードに置いてから、すぐにこのファイルをリンク解除します。
hop_information_string:デバイスのアクセス情報を保存するために使用される文字列。デバイスの個々のホップ情報をすべて、順番に並べた文字列連結です。ホップ情報とその
<hop_information_string> の例を次に示します。
|
|
|
|
|
対応する <hop_information_string> は、次のようになります。
(注) ヌル値を含むこれらのホップ情報フィールドには、子プロセスへ渡す前に、IMGW ランタイムが自動的にスペースを追加します。
command_to_be_executed:デバイスに対して実行されるコマンド。アクション タイプが exec の場合にのみ、IMGW ランタイムによって提供されます。
command_arguments:デバイスに対して実行されるコマンドの引数。アクション タイプが exec の場合にのみ、IMGW ランタイムによって提供されます。
configuration_file_name:デバイスにダウンロードされる設定ファイルへのフル パス。このパスは、アクション タイプが config であり、CNS 2100 Series システムの /tmp にある場合にのみ、IMGW ランタイムによって提供されます。プラグイン プログラムの終了後、IMGW ランタイムはただちにこのファイルをリンク解除します。
persistence:y または n。y の記号は、設定が不揮発性ストレージなどに書き込まれる必要があることを意味します。アクション タイプが config の場合にのみ、IMGW ランタイムによって提供されます。このオプションは、デバイスの種類によって異なります。つまり、デバイス タイプがこのオプションをサポートしていない場合、デバイス モジュールはこのオプションを無視できます。
operation_timeout_value:デバイスに対してコマンドを実行できる最長時間。このパラメータは、IOS、CatOS、CatIOS、PIX、CSS および CE デバイス用の IMGW レガシー デバイス モジュールにある Expect スクリプトで使用されています。ユーザ定義のデバイス モジュールでこのパラメータを使用しない場合は、このパラメータを無視できます。
prompt_timeout_value:デバイスへのログイン セッション中に、次のプロンプトまで待機できる最長時間。このパラメータは、IOS、CatOS、CatIOS、PIX、CSS および CE デバイス用の IMGW レガシー デバイス モジュールにある Expect スクリプトで使用されています。ユーザ定義のデバイス モジュールでこのパラメータを使用しない場合は、このパラメータを無視できます。
分岐されたプロセス(プラグイン プログラムが実行されるプロセス)が終了したとき、IMGW ランタイムは次の終了コードを分岐されたプロセスから返します。
次に、config、exec、および hoptest の 3 つのコマンドのプログラム フローについて簡単に説明します。最初の 2 つのコマンドは、それぞれ cisco.mgmt.cns.config.load イベントおよび
cisco.mgmt.cns.exec.cmd イベントへの応答です。これに対して、最後のコマンドは IMGW ランタイムが必要とする内部のルーチン処理であるため、ネットワーク オペレータの関与を必要としません。
IMGW ランタイムが子プロセスを発生してプラグイン プログラムを実行した後、対応するデバイス モジュールがパラメータ リストからアクション タイプを読み込む必要があります。アクション タイプが config の場合、デバイス モジュールはデバイス設定を更新する必要があります。exec の場合は、デバイス モジュールはコマンドを実行する必要があります。hoptest の場合は、デバイス モジュールはホップのテストを行う必要があります。
1. <hop_information_string> を使用して、デバイスにアクセスします。
2. <configuration_file_name> で指定した設定ファイルをデバイスにダウンロードします。
3. 上記のダウンロード オペレーションが成功した場合、<persistence> が y に設定されます。デバイスはこのオプションをサポートし、非揮発性ストレージに設定を書き込みます。
4. デバイスによってプロンプトされたすべての警告メッセージおよび対応する設定コマンドの行番号を、<warning_logfile_name> で指定したファイルに書き込みます。このファイルの内容は、ダウンロードに成功したが警告メッセージがある場合、応答イベントのペイロードの一部になります。
5. デバイスによってプロンプトされたすべてのエラー メッセージおよび対応する設定コマンドの行番号を、<error_logfile_name> で指定したファイルに書き込みます。最初のエラー メッセージおよび対応する設定コマンド ライン番号は、ダウンロードに失敗した場合、応答イベントのペイロードの一部になります。
6. <logging_level> に基づき、プロシージャ全体を通してデバッグするために
<temp_logfile_name> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
1. <hop_information_string> を使用して、デバイスにアクセスします。
2. <command_to_be_executed> に <command_arguments> を指定してデバイスに対して実行します。
3. コマンド実行からのすべての出力を <exec_response_logfile_name> で指定したファイルに書き込みます。このファイルの内容は、応答イベントのペイロードの一部になります。
4. <logging_level> に基づき、プロシージャ全体を通してデバッグするために
<temp_logfile_name> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
1. <hop_information_string> を使用して、デバイスにアクセスします。
2. <logging_level> に基づき、プロシージャ全体を通してデバッグするために
<temp_logfile_name> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
3. 適切な終了コードで終了して、IMGW ランタイムに制御を返します。
「コード サンプル」に簡単な例を示します。サンプル プログラムは、rlogin を使用して UNIX/Linux ワークステーションに接続し、渡されたコマンドを実行するスクリプトです。このプログラムは、実行イベントに応答します。
ステップ 1 デバイス モジュールのプラグイン プログラムを作成します。
ステップ 2 ステップ 1 で作成したプログラムのユニット テストを行います。
ステップ 3 プログラムを CNS 2100 Series システムの /opt/CSCOimgw/plugin-modules/<device_type> の下にコピーします。
デバイス タイプを MYDEV とすると、次の例のようになります。/opt/CSCOimgw/plugin-modules/MYDEV/my-handler.exp
ステップ 4 プログラムを CNS 2100 Series システムに登録するには、次のコマンドを入力します(CNS 2100 Series システムのゲートウェイ ID を imgw-test1 としています)。
% imgw-devmod-register -gateway imgw-test1 -devtype MYDEV -optype exec -cmd /opt/CSCOimgw/plugin-modules/MYDEV/my-handler.exp
ステップ 5 DAT を使用してデバイス タイプとホップ タイプを追加します。
a. Home ページで、Tools タブをクリックします。
d. Edit Hop/Device Type をクリックします。
e. New DeviceType ボックスにステップ 3 のデバイス タイプを入力し、Add to list をクリックします(図 B-1 を参照)。
f. New HopType ボックスに新しいホップ タイプを入力し、Add to list をクリックします。
ステップ 1 新しいデバイス モジュールのプラグイン プログラムを用意します。
ステップ 2 古いプログラムの登録を取り消すには、次のコマンドを入力します。
% imgw-devmod-deregister -gateway imgw-test1 -devtype MYDEV -optype exec
ステップ 3 ステップ 1 で作成したプログラムを CNS 2100 Series システムの /opt/CSCOimgw/plugin-modules/<device_type> の下にコピーします。
/optCSCOimgw/plugin-modules/MYDEV/new_handler.exp
ステップ 4 新しいプログラムを CNS 2100 Series システムに登録するには、次のコマンドを入力します。
% imgw-devmod-register -gateway imgw-test1 -devtype MYDEV -optype exec -cmd /optCSCOimgw/plugin-modules/MYDEV/new_handler.exp
ステップ 1 DAT を使用してデバイス タイプとホップ タイプを削除します。
a. Home ページで、Tools タブをクリックします。
d. Edit Hop/Device Type をクリックします。
e. 削除するデバイス タイプを選択し、Remove をクリックします(図 B-1 を参照)。
f. 削除したデバイス タイプに関連付けられているホップ タイプを選択し、Remove をクリックします。
ステップ 2 プログラムの登録を取り消すには、次のコマンドを入力します。
% imgw-devmod-register -gateway imgw-test1 -devtype MYDEV -optype exec
ステップ 3 /opt/CSCOimgw/plugin-modules からプラグイン プログラムを削除するには、次のコマンドを入力します。
% rm -fr /opt/CSCOimgw/plugin-modules/MYDEV/