Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ を使用して Junos デバイスのレスキュー設定を管理する

Junos PyEZ jnpr.junos.utils.config.Config ユーティリティを使用すると、Junosデバイス上のレスキュー設定を管理できます。レスキュー設定では、動作確認済みの設定や、いつでも復元できる既知の状態の設定を定義できます。レスキュー設定は、既知の設定に戻す必要がある場合や、ルーターやスイッチの設定、バックアップの設定ファイルが修復できないほど破損した場合の最後の手段として使用します。

レスキュー構成を管理する方法

この jnpr.junos.utils.config.Config ユーティリティを使用すると、Junos デバイス上のレスキュー設定を保存、取得、ロード、および削除できます。クラスのインスタンスConfigを作成したら、この rescue() メソッドを使用してレスキュー構成を管理します。method action パラメーターを目的の操作に設定rescue()して、レスキュー構成に対して実行するアクションを指定します。有効なアクション値には"save"、、 、 、 "get""reload""delete"が含まれます。次の例は、各rescue()メソッドアクションのメソッド呼び出しを示しています。

レスキュー設定の保存

レスキュー設定を作成すると、デバイスは最後にコミットされた設定をレスキュー設定として保存します。アクティブなコンフィギュレーションをレスキューコンフィギュレーションとして保存するには、メソッド引数rescue()リストで を指定しますaction="save"。この操作により、既存のレスキュー設定が上書きされます。例えば:

レスキュー設定の取得

既存のレスキュー設定を取得するには、 を指定しaction="get"、オプションで形式"json"を 、 "text" または "xml"として指定します。形式を指定しない場合、既定の形式はテキストです。デバイスに既存のレスキュー構成がない場合、メソッドNonerescue() を返します。

次の例では、レスキュー設定を取得して出力します (存在する場合)。

レスキュー設定の読み込みとコミット

既存のレスキュー構成を候補構成にロードするには、 を指定します action="reload"。レスキュー設定が存在しない場合、ロード操作 Falseは を返します。レスキュー設定を読み込んだ後、設定をコミットして、デバイス上でアクティブな設定にする必要があります。

次の例では、レスキュー設定の読み込みを試み、存在する場合はコミットしてアクティブな設定にします。

レスキュー設定の削除

既存のレスキュー設定を削除するには、 を指定します action="delete"

例:Junos PyEZ を使用したレスキュー設定の保存

この例では、Junos PyEZ jnpr.junos.utils.config.Config ユーティリティを使用して、Junos デバイスにレスキュー設定を保存します(まだ存在しない場合)。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • Python 3.5 以降および Junos PyEZ リリース 2.0 以降を実行する構成管理サーバー

  • NETCONFが有効で、適切な権限で設定されたユーザーアカウントを備えたJunosデバイス

  • サーバーとJunosデバイス上の適切なユーザーに対して設定されたSSH公開鍵と秘密鍵のペア

概要

この例では、Junos PyEZ Config ユーティリティを使用して、指定したデバイスにレスキュー設定を保存するPythonアプリケーションを紹介します。レスキュー設定では、動作確認済みの設定や、いつでも復元できる既知の状態の設定を定義できます。レスキュー設定を作成すると、デバイスは最後にコミットされた設定をレスキュー設定として保存します。

Python アプリケーションは、Junos デバイスとConfigの接続を処理するクラス、ターゲットデバイスでレスキュー設定操作を実行するために使用されるクラス、モジュールからjnpr.junos.exception必要な例外(Junos デバイスの管理時に発生する例外を含む)をインポートDeviceします。ターゲット デバイスのインスタンスを作成Deviceした後、メソッドは open() デバイスとの接続と NETCONF セッションを確立します。

アプリケーションは、まず、ターゲット デバイスに既存のレスキュー構成があるかどうかを判断します。レスキュー構成が存在する場合は、標準出力に出力されます。既存のレスキュー設定がない場合、アプリケーションはレスキュー設定を作成するようにデバイスに指示します。method パラメーターは"get"、既存のレスキュー構成を取得するために に設定され、 rescue() 存在しない場合はレスキュー構成を作成するために に設定されます"save"action

レスキュー設定操作を実行した後、アプリケーションはメソッド close() を呼び出して NETCONF セッションと接続を終了します。アプリケーションには、デバイスへの接続時に発生するエラーなどの ConnectError 例外を処理するためのコードが含まれています。アプリケーションには、発生する可能性のある追加の例外を処理するコードも含まれています。

構成

Junos PyEZアプリケーションを作成する

手順

Junos PyEZ を使用してレスキュー設定を保存する Python アプリケーションを作成するには、次の手順に従います (Junos デバイスにまだ存在しない場合)。

  1. 必要なモジュール、クラス、およびオブジェクトをインポートします。

  2. 必要な変数(この例では管理対象デバイスのホスト名を含む)を含めます。

  3. main()関数定義と関数呼び出しを作成し、残りのステートメントを定義内に配置します。

  4. クラスのインスタンス Device を作成し、その特定の接続に必要なホスト名とパラメーターを指定します。

  5. 接続を開き、デバイスとの NETCONF セッションを確立します。

  6. ユーティリティの Config インスタンスを作成します。

  7. 既存のレスキュー構成を印刷するか、存在しない場合は保存します。

  8. NETCONF セッションを終了し、デバイスとの接続を閉じます。

結果

構成管理サーバーで、完成したアプリケーションを確認します。アプリケーションに目的のコードが表示されない場合は、この例の手順を繰り返してアプリケーションを修正します。

Junos PyEZコードを実行します。

アプリケーションの実行

Junos PyEZコードを実行するには:

  • 構成管理サーバーで、アプリケーションを実行します。

    この例では、ターゲットデバイスには既存のレスキュー設定がないため、デバイスはレスキュー設定を保存します。アプリケーションを 2 回目に実行すると、初回実行時に保存されたレスキュー設定が出力されます。

検証

設定の確認

目的

Junos デバイスにレスキュー設定が存在することを確認します。

アクション

Junos デバイスにログインし、レスキュー設定を表示します。例えば:

トラブルシューティング

サポートされていないアクションエラーのトラブルシューティング

問題

Junos PyEZコードは、サポートされていないアクションを示すエラーメッセージを生成します。

このエラー メッセージは、メソッドaction引数に無効な値が含まれている場合に生成されますrescue()

ソリューション

メソッド引数をrescue()有効なアクション ("save"、 、 "get""reload""delete"、 を含む) に設定します。action