この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
IMGW Device Module Development Toolkit では、IMGW のサウスバウンド インターフェイスが明確に定義されています。また、CNS Configuration Engine 1.4 にインストールされたプラグイン デバイス モジュールを IMGW に登録するための登録ユーティリティが提供されています。
この章では、IMGW Device Module Development Toolkit の要件を分析し、このツールキットによって提供される機能について説明します。
(注) デバイス モジュールは、シェル スクリプトまたは Linux や Solaris の実行ファイルで実装することもできます。ただし、そのデバイス モジュールは IMGW サウスバウンド インターフェイスに準拠している必要があります。
このツールキットは、次の 3 タイプのユーザを対象としています。
• プラグイン開発者:このツールキットで定義されている IMGW サウスバウンド インターフェイスに準拠するデバイス モジュールを開発する担当者
–デバイス モジュールの CNS Configuration Engine 1.4 への組み込みと取り外し
このツールキットには、次の 3 つの一般的な使用方法があります。
• デバイス モジュールを CNS Configuration Engine 1.4 に組み込み、そのデバイス モジュールを使用してデバイスを設定する。
• CNS Configuration Engine 1.4 上のデバイス モジュールを更新し、変更後のデバイス モジュールを使用してデバイスを設定する。
• CNS Configuration Engine 1.4 からデバイス モジュールを取り外す。
CNS Configuration Engine 1.4 にデバイス モジュールを組み込み、そのデバイス モジュールを使用してデバイスを設定するには、次の一般的な手順を実行します。
ステップ 1 プラグイン開発者 が、所定のデバイス タイプを処理するために、このツールキットで定義されている IMGW サウスバウンド インターフェイスに準拠するデバイス モジュールを開発します。
デバイス モジュール構文については、「IMGW サウスバウンド インターフェイス」を参照してください。
ステップ 2 システム管理者 がデバイス モジュールを CNS Configuration Engine 1.4 にインストールします。
ステップ 3 システム管理者 が登録ユーティリティを実行してデバイス モジュールを IMGW に登録します。
ステップ 4 ネットワーク オペレータ がデバイス モジュールを使用してデバイスを設定します。
CNS Configuration Engine 1.4 上のデバイス モジュールを更新し、変更後のデバイス モジュールを使用してデバイスを設定するには、次の一般的な手順を実行します。
ステップ 1 プラグイン開発者が新しいバージョンのデバイス モジュールを提供します。
ステップ 2 システム管理者 が登録ユーティリティを実行して IMGW からデバイス モジュールを登録解除します。
更新するデバイス モジュールが登録されていない場合は、この手順をスキップします。
ステップ 3 システム管理者 が CNS Configuration Engine 1.4 上の新しいバージョンでデバイス モジュールを更新します。
ステップ 4 システム管理者 が登録ユーティリティを実行して更新済みのデバイス モジュールを IMGW に登録します。
ステップ 5 ネットワーク オペレータ が変更後のデバイス モジュールを使用してデバイスを設定します。
CNS Configuration Engine 1.4 からデバイス モジュールを取り外すには、次の一般的な手順を実行します。
ステップ 1 システム管理者 が登録ユーティリティを実行して、IMGW からプラグイン デバイス モジュールを登録解除します。
ステップ 2 システム管理者 がプラグイン デバイス モジュールを CNS Configuration Engine 1.4 からアンインストールします。
コマンド実行または設定更新が行われたことが IMGW ランタイムに受信されると、デバイス情報データベースから最初にデバイス タイプ情報が取得されます。デバイス タイプとオペレーション タイプ(CONFIG_UPLOAD または CONFIG_DOWNLOAD)に対応するデバイス モジュールが登録されている場合、IMGW ランタイムはプロセスを分岐して適切なプラグイン プログラムを実行し、プラグイン プログラムにパラメータ リストを渡します。
<デバイス タイプ、オペレーション タイプ> のペアからプラグイン プログラムへの初期のマッピング情報は、起動時に設定ファイルからメモリに読み込まれます。IMGW の実行時でも、システム管理者はツールキットの登録ユーティリティを使用して、マッピング情報のエントリを追加、削除、または更新することができます。
システム管理者は、非レガシー デバイス モジュールのエントリのみを変更できます。この制約事項は、IMGW ランタイムによるものです。
ユーザ定義のデバイス モジュールは、IMGW サウスバウンド インターフェイスに準拠している必要があります。この項ではその仕様を示します。
<plug-in program> <temp_logfile_name> <logging_level> <device_id> <action_type> <warning_logfile_name> <error_logfile_name> <hop_information_string> <configuration_file_name> <persistence> <operation_timeout_value> <prompt_timeout_value>
<plug-in 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>
<plug-in program> <temp_logfile_name> <logging_level> <device_id> <action_type> <hop_information_string> <operation_timeout_value> <prompt_timeout_value>
(注) IMGW サウスバウンド インターフェイスに指定されたすべてのファイルは、IMGW ランタイムによって管理され、ファイル名は絶対パス名です。
Plug-in Program:IMGW ランタイムによって分岐された子プロセスで実行されるプラグイン プログラム。システム管理者が登録時にこの情報を IMGW ランタイムに提供します。
temp_logfile_name:デバイス モジュールの一時ログ ファイルへのフル パス。デバイス モジュールはこのパスを使用して、オペレーションの 1 つのインスタンス(設定のダウンロード、コマンドの実行、ホップのテスト)の処理履歴をログに記録する必要があります。デフォルトでは、このファイルは CNS Configuration Engine 1.4 の /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 < 警告メッセージの原因となった設定コマンドの行番号 > が先頭に付いている必要があります。警告ファイルの例を次に示します。
LINE 3: The interface has already been removed
LINE 7: The interface already exists.
このファイルの場所は、CNS 2100 Series システムの /tmp の下です。プラグイン プログラムが終了した後、IMGW ランタイムが応答イベント ペイロード内にこのファイルの内容を置き、次にこのファイルをすぐにリンク解除します。
error_logfile_name:エラー メッセージの発生および対応する設定コマンドの行番号を記録するためにデバイス モジュールによって使用されるファイルへのフル パス。このパラメータは、アクション タイプが config の場合にのみ、IMGW ランタイムによって提供されます。このファイルの情報は、設定が失敗した場合に cisco.mgmt.cns.config.load イベントへの応答メッセージを生成するためにのみ使用されるからです。IMGW ランタイムが適切な応答メッセージを生成するためには、各エラー メッセージは新しい行で開始され、文字列 LINE < エラー メッセージの原因となった設定コマンドの行番号 > が先頭に付いている必要があります。
LINE 3: % Invalid input detected at
LINE 12: % The interface already exists
このファイルの場所は、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 ランタイムは次の終了コードを分岐されたプロセスから返します。
このツールキットを使用することにより、プラグイン開発者は、デバイス モジュールが 「IMGW サウスバウンド インターフェイス」 で示されている IMGW サウスバウンド インターフェイスに準拠している限り、任意の実装方法でプラグイン デバイス モジュールを実現できます。
このツールキットでは、Perl スクリプトおよび Expect スクリプトのサンプル コード( 付録 B「IMGW Device Module Development Toolkit の使用方法」 を参照)やインライン コメントも提供されており、初心者がプラグイン デバイス モジュールのワークフローを理解するのに役立ちます。
プラグイン デバイス モジュールは、次の 3 つの基本機能を提供します。
最初の 2 つの機能はそれぞれ、cisco.mgmt.cns.config.load イベント、cisco.mgmt.cns.exec.cmd イベントへの応答です。最後の機能は、IMGW ランタイムが必要とする内部のルーチン処理のため、ネットワーク オペレータの関与を必要としません。
IMGW ランタイムが子プロセスを発生してプラグイン プログラムを実行した後、対応するデバイス モジュールがパラメータ リストからアクション タイプを読み込む必要があります。各アクション タイプを次に示します。
• 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> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
7. 適切な終了コードで終了して、IMGW ランタイムに制御を返します。終了コードを定義付けるには、「終了コード」を参照してください。
1. <hop_information_string> 経由でデバイスにアクセスします。
2. <command_to_be_executed> に <command_arguments> を指定してデバイスに対して実行します。
3. コマンド実行からのすべての出力を <exec_response_logfile_name> で指定したファイルに書き込みます。このファイルの内容は、応答イベントのペイロードの一部になります。
4. <logging_level> に基づき、プロシージャ全体を通してデバッグするために
<temp_logfile_name> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
5. 適切な終了コードで終了して、IMGW ランタイムに制御を返します。終了コードを定義付けるには、「終了コード」を参照してください。
1. <hop_information_string> 経由でデバイスにアクセスします。
2. <logging_level> に基づき、プロシージャ全体を通してデバッグするために
<temp_logfile_name> で指定したファイルへと、処理履歴を重点的にリダイレクトします。
3. 適切な終了コードで終了して、IMGW ランタイムに制御を返します。終了コードを定義付けるには、「終了コード」を参照してください。
システム管理者は、インストール/アンインストールを担当する必要があります。登録ユーティリティをコールする前に、インストールが成功していることを確認してください。
システム管理者は、すべてのプラグイン デバイス モジュールを予約ファイル ディレクトリ
/opt/CSCOimgw/plugin-modules にインストールします。このとき、デバイス モジュールごとに 1 つのサブディレクトリを使用します。たとえば、MGX 用のデバイス モジュールを
/opt/CSCOimgw/plugin-modules/MGX にインストールし、NT 用のデバイス モジュールを
/opt/CSCOimgw/plugin-modules/NT にインストールします。
システム管理者は、デバイス モジュール インストール ディレクトリ内のみを操作してモジュールの実行環境を設定/解除する必要があります。インストールによって CNS Configuration Engine 1.4 上の他のコンポーネントの実行環境に影響を与えないようにするためです。
システム管理者は、デバイス モジュールの登録時にデバイス タイプとプラグイン プログラムへのフル パスを入力する必要があります。IMGW ランタイムはこの情報の整合性をチェックしません。情報が正しいことを確認するのは、システム管理者の責任です。
このツールキットはシステム管理者にダイナミックな登録ユーティリティを提供します。これを使用すると、システム管理者は、IMGW ランタイムを壊すことなくシームレスにデバイス モジュールを IMGW に組み込みおよび取り外しできます。したがって、登録/登録解除するデバイス モジュールと関連のないサービスは影響を受けません。ただし、それ以外のサービスに関しては、これが当てはまらない場合があります。
たとえば、デバイス モジュール x に対して登録解除コマンドを発行すると、 x と関連する、CNS イベント バスのキューに入ったままのイベントは、IMGW から失敗応答が返される場合があります。
IMGW Device Module Development Toolkit のエンド ユーザ インターフェイスは、IMGW サウスバウンド インターフェイスとコマンドライン登録ユーティリティで構成されています。
このツールキットでは、IMGW に追加できるプラグイン デバイス モジュールの最大数に制限はありません。
• デバイス モジュールは、Linux プラットフォームまたは Solaris プラットフォーム(あるいはその両方)で実行可能です。
• デバイス モジュールの実行ファイルが C++ バイナリ ファイルである場合、CNS Configuration Engine 1.4 に存在する glib を適用可能な箇所で使用する必要があります。
• デバイス モジュールの実行ファイルが Java クラスである場合、CNS Configuration Engine 1.4 の既存 JVM で実行する必要があります。
• デバイス モジュールに Perl スクリプトまたは Expect スクリプト(あるいはその両方)が含まれている場合、そのスクリプトには CNS Configuration Engine 1.4 に存在する Perl インタープリタまたは Expect インタープリタ(あるいはその両方)を使用する必要があります。
システム管理者は、IMGW レガシー デバイス モジュールを登録/登録解除しないでください。ユーザ固有のニーズを満たすために、レガシー デバイス モジュールのいずれかを変更して、 CatOS、CatIOS、PIX、CSS、CE、または IOS の各デバイスでアップロード/ダウンロード操作を実行することが必要になる場合もあります。この場合は、レガシー デバイス モジュールのユーザ自身が所有するコピーを変更し、別のデバイス タイプ名を変更後のデバイス モジュールに関連付けてから、そのデバイス モジュールを IMGW に登録します。