Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF Java Toolkit を使用した運用タスクの実行

デバイス オブジェクトのメソッドを使用した RPC と動作コマンドの実行

NETCONF Java ツールキット オブジェクトには、リモート デバイスから情報を要求し、リモート デバイスで運用 Device タスクを実行する方法があります。必要に応じて、メソッドが過負荷状態になり、さまざまな形式が使用されます。

RPC の実行

リモート プロシージャ コール(RPC)を実行するには、オブジェクト上 executeRPC() でこのメソッドを呼び出 Device します。メソッド executeRPC() は、オブジェクト、オブジェクト、またはオブジェクトを引数として受け String net.juniper.netconf.XML org.w3c.dom.Document 入れる過負荷状態になります。RPC は NETCONF サーバーによって処理され、このサーバーは RPC 応答を XML オブジェクトとして返します。

この手法の構文は次のとおりです。

次のコード スニペットは、文字列の引数Junos XML API get-chassis-inventory RPC を実行します。 get-chassis-inventory RPC は、プロトコル(プロトコル)の動作モード コマンドJunos OS コマンドライン インターフェイス show chassis hardware しますCLI。

動作モード コマンドの実行

動作モード コマンドを実行してデバイスから情報を要求するか、Junos OSで動作タスクを実行するには、このメソッド runCliCommand() をオブジェクトに呼び出 Device します。この runCliCommand() 方法では、リモート デバイスJunos OS NETCONF サーバーに、リモート モード コマンドを送信します。引数は、フィールドに入力する動作モード コマンドを表す文字列Junos OS CLI。RPC は NETCONF サーバーによって処理され、このサーバーから RPC 応答が返されます。Junos OS リリース 11.4 で始まる戻り文字列は、次の表に示す ASCII 形式の出力Junos OS CLI。以前のバージョンのインスタンスを実行しているJunos OS、戻り文字列には XML タグ要素Junos含まれています。

この手法の構文は次のとおりです。

次のコード スニペットは、CLIを実行しているデバイスの NETCONF サーバーに、CLI operational mode コマンド show chassis hardware を送信Junos OS。

例: 運用リクエスト RPC を実行する NETCONF Java アプリケーション

この NETCONF Java ツールキット プログラムは RPC を実行してデバイスから動作情報を取得し、そこから標準出力に印刷されます。この例は、基本的なNETCONF Javaツールキットプログラムを作成および実行するための手順の例として機能します。

要件

  • NETCONF Java ツールキットが設定管理サーバーにインストールされます。

  • クライアント アプリケーションは、NETCONF サーバーが存在するデバイスにログインできます。

  • SSH 上の NETCONF サービスは、NETCONF サーバーが存在するデバイスで有効になっています。

概要

NETCONF Java ツールキットを使用して、リモート デバイスから運用情報を要求できます。次の例は、NETCONF Java ツールキット プログラムを作成して、仮想マシンで実行しているデバイス上で Junos XML API から運用リクエストを実行する方法を示Junos OS。この例では、コードをコンパイルし、プログラムを実行して結果を検証する方法も説明しています。

構成

Java プログラムの作成

手順

動作リクエストのコードを含む Java プログラム ファイルを作成するには、次の方法に示します。

  1. ファイルに説明的な名前を付けてください。

    ファイル名はクラス名と同じである必要があります。この例では、ファイルとクラスを GetChassisInventory という名前にしています

  2. 適切なインポート ステートメント、およびクラス宣言用のコードと Java メソッドを含める main()

  3. main() に、オブジェクトを Device 作成し、メソッドを呼び出 connect() します。

    これにより、NETCONF サーバーとの SSHv2 上でデフォルトの NETCONF セッションが作成されます。特定のデバイスへの接続と認証に適切な引数を使用して、コードを更新する必要があります。

    オブジェクトを確立 Device すると、デバイスで NETCONF 操作を実行できます。NETCONF の運用に対応する使用可能な方法の完全なリストについては、 NETCONF Java ツールキット Javadocs を参照してください。

  4. 動作要求 executeRPC() RPC コマンドを使用してこのメソッドを引数として呼び出します。

    この例では、XML API RPC Junosを使用 get-chassis-inventory します。XMLで返される応答は変数に格納 rpc_reply されています。

  5. RPC 応答に対してアクションを実行するコードを追加します。

    次のコードでは、NETCONF サーバーの返信を文字列に変換し、画面に印刷します。

  6. デバイス オブジェクト上でメソッドを呼び出して、デバイス close() リソースとリリース リソースを閉じます。

結果

プログラムの全プログラムは次のステップで完了します。

Java プログラムのコンパイルと実行

手順

ソースコードをコンパイルし、実行可能プログラムを作成するには、Javaコンパイラが必要です。

コードをコンパイルし、設定管理サーバーでプログラムを実行するには、次の方法に示します。

  1. GetChassisInventory.java ファイルをコンパイルします。

  2. GetChassisInventory プログラムを実行します。

検証

プログラム実行の検証

目的

GetChassisInventory プログラムが正しく実行されていることを検証します。

アクション

プログラムが正常に実行されると、接続を確立し、指定したデバイスとの NETCONF セッションを作成します。プログラムが RPC を NETCONF サーバーに送信し、サーバーはタグ要素内で囲まれた要求された運用情報 get-chassis-inventory<rpc-reply> 応答します。プログラムは標準への返信を印刷します。以下は、簡単に除外された一部の出力を持つサンプル RPC 応答を示しています。

トラブルシューティング

NETCONF 例外のトラブルシューティング

問題

NETCONF 例外が発生し、次のエラー メッセージが表示されます。

NETCONFサーバーが存在するデバイスでNETCONF over SSHが有効になっていない、または別のポートで有効になっている可能性があります。

ソリューション

NETCONF サーバーが存在するデバイスで、SSH 上で NETCONF over SSH が有効になっているか確認します。例プログラムでは引数に特定のポート番号が指定されていないので、NETCONF セッションはデフォルトの Device NETCONF-over-SSH ポート 830 で確立されます。Junos OSを実行しているデバイスのデフォルト ポートでNETCONF over SSHが有効になっているかどうかを確認するには、リモート デバイスで次の動作モード コマンドを入力します。

設定階層が気に入る場合は、設定モードで次のステートメントを発行し、デフォルト ポートで SSH 上で netconf NETCONF over SSH を有効にします。

設定階層でデフォルト ポート以外のポートが指定されている場合は、オブジェクト コンストラクタの引数に新しいポート netconf Device 番号を含める必要があります。たとえば、ポート12345でNETCONF over SSHに対して以下のデバイスが設定されています。

接続の問題を修正するには、新しいポート番号を引数に Device 含める。

例: NETCONF Java Application for executing CLI コマンド

この NETCONF Java ツールキット プログラムは、指定された Junos OS 動作モード コマンドを NETCONF サーバーに送信して、仮想ネットワークで実行しているデバイスから情報を要求したり、操作タスクを実行する方法をデモンストレーションJunos OS。 runCLICommand()

要件

  • ルーティング、スイッチング、セキュリティのデバイスで動作Junos OS。

  • NETCONF Java ツールキットが設定管理サーバーにインストールされます。

  • クライアント アプリケーションは、NETCONF サーバーが存在するデバイスにログインできます。

  • SSH 上の NETCONF サービスは、NETCONF サーバーが存在するデバイスで有効になっています。

概要

NETCONF Java ツールキット クラスには、Junos OS CLI 動作モード コマンドを使用して Device 、NETCONF サーバーが処理できる XML 内の同等の RPC に変換する方法が runCliCommand() 含まれています。この runCLICommand() メソッドは、メソッドに入力した動作モード コマンドを表す文字列としてJunos OS CLI。

次の例では、デバイスで実行 show chassis hardware されているデバイスで コマンドを実行Junos OS。メソッドの戻り値は文字列です。Junos OS リリース 11.4 で始まる戻り文字列は、次の表に示す ASCII 形式の出力Junos OS CLI。以前のバージョンのインスタンスを実行しているJunos OS、戻り文字列には XML タグ要素Junos含まれています。

構成

Java プログラムの作成

手順

Java プログラム ファイルを構築するには、以下の方法で行います。

  1. ファイルに説明的な名前を付けてください。

    ファイル名はクラス名と同じである必要があります。この例では、ファイルとクラスの名前はExecuteCLICommand .

  2. コードをファイルに追加し、リモート ホストの IP アドレス、ユーザー名、パスワード、タグ要素などの環境固有の変数 <rpc-reply> を更新します。

    ここで、ExecuteCLICommand.javaプログラムの完全な Java コードを示します。

Java プログラムのコンパイルと実行

手順

ソースコードをコンパイルし、実行可能プログラムを作成するには、Javaコンパイラが必要です。

コードをコンパイルし、設定管理サーバーでプログラムを実行するには、次の方法に示します。

  1. ExecuteCLICommand.java ファイルをコンパイルします。

  2. ExecuteCLICommand プログラムを実行します。

検証

プログラム実行の検証

目的

ExecuteCLICommand プログラムが正しく実行されていることを検証します。

アクション

プログラムが正常に実行されると、接続を確立し、指定されたデバイスとの NETCONF セッションを作成します。このプログラムは、Junos OS CLI モード コマンドを RPC に変換し、RPC を show chassis hardware NETCONF サーバーに送信します。サーバーは、タグ要素に囲まれた要求された動作情報で応答します。 プログラムは RPC 応答を解析し、結果のシャーシ インベントリ <rpc-reply> を印刷します。次のサンプル出力は m7i ジュニパーネットワークス出力です。

Junos OSリリース11.4以降を実行しているデバイスでは、出力はASCII形式のテキストで示され、これはCLI。

リリース11.3 Junos OSを実行しているデバイスでは、出力には XML Junos要素が含まれています。

例:コンポーネント温度印刷用NETCONF Javaアプリケーション

この NETCONF Java ツールキット プログラムは、デバイスで動作しているデバイスにコンポーネントの名前と対応する温度Junos OS。

要件

  • ルーティング、スイッチング、セキュリティのデバイスで動作Junos OS。

  • NETCONF Java ツールキットが設定管理サーバーにインストールされます。

  • クライアント アプリケーションは、NETCONF サーバーが存在するデバイスにログインできます。

  • SSH 上の NETCONF サービスは、NETCONF サーバーが存在するデバイスで有効になっています。

概要

次の例では、XML API RPC Junosを実行します。これは、デバイスで実行されている動作モード コマンドに相当 get-environment-information show chassis environment Junos OS。プログラムが RPC 応答を解析し、温度を示すすべてのコンポーネントに対して、プログラムはコンポーネント名と対応する温度を印刷します。

RPC リクエストの RPC 返信形式 get-environment-information は次の形式です。

応答を解析するために、プログラムはメソッド findNodes() を使用してオブジェクトのリストを返 org.w3c.dom.Node します。各ノード <environment-item> について、プログラムは子ノードのリストを取得します。子ノード リストに温度要素が存在する場合、プログラムは、その環境項目の名前と温度を印刷します。

構成

Java プログラムの作成

手順

Java プログラム ファイルを構築するには、以下の方法で行います。

  1. ファイルに説明的な名前を付けてください。

    ファイル名はクラス名と同じである必要があります。この例では、ファイルとクラスの名前は ShowTemps.

  2. コードをファイルに追加し、リモート ホストの IP アドレス、ユーザー名、パスワード、タグ要素などの環境固有の変数 <rpc-reply> を更新します。

    ShowTemps.javaプログラム用の完全な Java コードをここに示します。

Java プログラムのコンパイルと実行

手順

ソースコードをコンパイルし、実行可能プログラムを作成するには、Javaコンパイラが必要です。

コードをコンパイルし、設定管理サーバーでプログラムを実行するには、次の方法に示します。

  1. ShowTemps.java ファイルをコンパイルします。

  2. ShowTemps プログラムを実行します。

検証

結果の検証

目的

ShowTemps プログラムが正しく実行されていることを検証します。

アクション

プログラムが正常に実行されると、接続が確立され、指定されたデバイスとの NETCONF セッションが作成されます。次に、このプログラムは XML API RPC Junosを実行し、RPC 応答を解析し、子ノードを含むすべての環境項目 get-environment-information を印刷します <temperature>

次のサンプル出力は、 m7i ルータージュニパーネットワークス使用しています。