Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:NETCONF Perl クライアント アプリケーションを使用した設定の変更

NETCONF Perl ディストリビューションには、Junos OS を実行しているデバイスでさまざまな機能を実行するためのいくつかのサンプル Perl スクリプトが含まれています。 edit_configuration.pl スクリプトは、デバイス上の設定をロック、変更、アップロード、コミットします。リクエストの送信に基本的な構造を使用しますが、エラーを graceful_shutdown 処理するサブルーチンも定義します。以下のセクションでは、スクリプトが実行するさまざまな機能について説明します。

エラー状態の処理

edit_configuration.plスクリプトのサブルーチンはgraceful_shutdown、NETCONFセッションで発生したエラーを処理します。次の追加定数を使用します。

サブルーチンの最初の2つのifステートメントは、 および STATE_LOCKED 条件をSTATE_CONFIG_LOADED参照しています。これは、edit_configuration.plスクリプト内の設定の読み込みに特に適用されます。

設定のロック

edit_configuration.pl スクリプトのメイン セクションは、NETCONF サーバーへの接続を確立することから始まります。次に、メソッドをlock_configuration呼び出して、構成データベースをロックします。エラーが発生した場合、スクリプトはエラー状態の処理で説明されているgraceful_shutdownサブルーチンを呼び出します

設定データの読み取り

次のコード サンプルでは、 edit_configuration.pl スクリプトは、Junos XML 構成要素または ASCII 形式のステートメントを含むファイルを読み取り、解析します。機能サブセクションの詳細については、完全なコード サンプルに従います。

前述のコードサンプルの最初のサブセクションでは、設定データを含むファイルの存在を検証します。ファイルの名前は、以前はコマンドラインから取得し、 変数に $xmlfile 割り当てられました。ファイルが存在しない場合、スクリプトはサブルーチンを graceful_shutdown 呼び出します。

その後、スクリプトはサブルーチンをread_xml_file呼び出し、読み取り用のファイルを開き、その内容を変数に$config割り当てます。キーtargetqueryargscandidateに設定されます。スクリプトがメソッドをedit_configuration呼び出すと、候補の設定が編集されます。

-t edit_configuration.plスクリプトが呼び出されたときにコマンドラインオプションが含まれている場合、変数が$xmlfile参照するファイルには、CLI設定モードshowコマンドで返されるようなASCIIフォーマット設定ステートメントが含まれている必要があります。設定ステートメントがASCII形式のテキストにある場合、スクリプトはタグ要素内の変数に$config格納された設定をconfiguration-text囲み、その結果をハッシュキーにqueryargs関連付けられた値に格納しますconfig-text

-t edit_configuration.pl スクリプトの呼び出し時にコマンド行オプションが含まれていない場合、変数が$xmlfile参照するファイルには Junos XML 構成要素が含まれます。この場合、スクリプトはハッシュキーに$config関連付けられたqueryargs値として変数のみを格納しますconfig

設定データの編集

このスクリプトは、 edit_config 構成変更をデバイスに読み込むメソッドを呼び出します。NETCONF サーバーからの応答に graceful_shutdown エラーがある場合は、サブルーチンを呼び出します。

設定のコミット

この時点までのエラーがない場合、スクリプトはメソッドを commit 呼び出して、デバイス上の設定をコミットしてアクティブな設定にします。