Cisco CNS Configuration Engine 1.4 アドミニストレータ ガイド
IMGW Device Module Development Toolkit
IMGW Device Module Development Toolkit
発行日;2012/02/04 | 英語版ドキュメント(2009/02/14 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

IMGW Device Module Development Toolkit

ユーザ タイプ

ツールキットの使用方法

へのデバイス モジュールの組み込み

上のデバイス モジュールの更新

からのデバイス モジュールの取り外し

IMGW サウスバウンド インターフェイス

ユーザ設計のデバイス モジュールの仕様

設定イベント

実行イベント

ホップのテスト

パラメータの説明

終了コード

プラグイン デバイス モジュールの開発

開発ガイドライン

デバイス設定の更新

コマンドの実行

ホップのテスト

プラグイン デバイス モジュールのインストール

プラグイン デバイス モジュールの登録

エンド ユーザ インターフェイス

設定と制約事項

デバイス モジュールの制約事項

登録ユーティリティの制約事項

IMGW Device Module Development Toolkit

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 への組み込みと取り外し

プラグイン デバイス モジュールの登録と登録解除

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 へのデバイス モジュールの組み込み

CNS Configuration Engine 1.4 にデバイス モジュールを組み込み、そのデバイス モジュールを使用してデバイスを設定するには、次の一般的な手順を実行します。


ステップ 1 プラグイン開発者 が、所定のデバイス タイプを処理するために、このツールキットで定義されている IMGW サウスバウンド インターフェイスに準拠するデバイス モジュールを開発します。

デバイス モジュール構文については、「IMGW サウスバウンド インターフェイス」を参照してください。

ステップ 2 システム管理者 がデバイス モジュールを CNS Configuration Engine 1.4 にインストールします。

ステップ 3 システム管理者 が登録ユーティリティを実行してデバイス モジュールを IMGW に登録します。

ステップ 4 ネットワーク オペレータ がデバイス モジュールを使用してデバイスを設定します。


 

CNS Configuration Engine 1.4 上のデバイス モジュールの更新

CNS Configuration Engine 1.4 上のデバイス モジュールを更新し、変更後のデバイス モジュールを使用してデバイスを設定するには、次の一般的な手順を実行します。


ステップ 1 プラグイン開発者が新しいバージョンのデバイス モジュールを提供します。

ステップ 2 システム管理者 が登録ユーティリティを実行して IMGW からデバイス モジュールを登録解除します。

更新するデバイス モジュールが登録されていない場合は、この手順をスキップします。

ステップ 3 システム管理者 が CNS Configuration Engine 1.4 上の新しいバージョンでデバイス モジュールを更新します。

ステップ 4 システム管理者 が登録ユーティリティを実行して更新済みのデバイス モジュールを IMGW に登録します。

ステップ 5 ネットワーク オペレータ が変更後のデバイス モジュールを使用してデバイスを設定します。


 

CNS Configuration Engine 1.4 からのデバイス モジュールの取り外し

CNS Configuration Engine 1.4 からデバイス モジュールを取り外すには、次の一般的な手順を実行します。


ステップ 1 システム管理者 が登録ユーティリティを実行して、IMGW からプラグイン デバイス モジュールを登録解除します。

ステップ 2 システム管理者 がプラグイン デバイス モジュールを CNS Configuration Engine 1.4 からアンインストールします。


 

IMGW サウスバウンド インターフェイス

コマンド実行または設定更新が行われたことが 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 7: % Incomplete command

.
.
.

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> の例を次に示します。

 

ホップの種類

IP アドレス

ポート

ユーザ名

パスワード

IOS_LOGIN

172.29.145.45

Admin

Cisco

IOS_EN

Lab

Lab

対応する <hop_information_string> は、次のようになります。

“IOS_LOGIN” “172.29.145.45” “ ” “Admin” “Cisco” “IOS_EN” “ ” “ ” “Lab” “Lab”

) ヌル値を含むこれらのホップ情報フィールドには、子プロセスへ渡す前に、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 ランタイムは次の終了コードを分岐されたプロセスから返します。

設定イベント

0:ダウンロード成功

1:ダウンロード失敗

2:ダウンロードが警告メッセージ付きで成功

実行イベント

0:コマンド実行成功

1:コマンド実行失敗

ホップのテスト

0:ホップのテスト成功

1:ホップのテスト失敗

プラグイン デバイス モジュールの開発

このツールキットを使用することにより、プラグイン開発者は、デバイス モジュールが 「IMGW サウスバウンド インターフェイス」 で示されている IMGW サウスバウンド インターフェイスに準拠している限り、任意の実装方法でプラグイン デバイス モジュールを実現できます。

このツールキットでは、Perl スクリプトおよび Expect スクリプトのサンプル コード( 付録 B「IMGW Device Module Development Toolkit の使用方法」 を参照)やインライン コメントも提供されており、初心者がプラグイン デバイス モジュールのワークフローを理解するのに役立ちます。

プラグイン デバイス モジュールは、次の 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> で指定したファイルへと、処理履歴を重点的にリダイレクトします。

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 に登録します。