Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

イベントスクリプトを使用した設定の変更

イベントポリシーを設定して、イベントに応じて設定を変更することができます。イベントポリシーは、設定を変更してコミットするイベントスクリプトを呼び出すか、 change-configuration ステートメントを使用して設定を変更する設定モードコマンドを実行することで、設定を変更することができます。イベントスクリプトは、設定を変更する際に、 change-configuration ステートメントよりも柔軟性があります。例えば、イベント・スクリプトを使用すると、特定の条件を確認したり、構成データをさまざまな形式で提供したり、データを既存の構成とマージする方法を指定したりできます。たとえば、ノンストップアクティブルーティング(NSR)が有効になっているデュアルルーティングエンジンデバイスなどでは、イベントポリシーでイベントスクリプトのみを使用して設定を変更することができます。

次のセクションでは、イベントスクリプトを使用した設定の変更について説明します。

SLAX または XSLT イベントスクリプトを使用して構成を変更する方法

SLAX および XSLT イベントスクリプトは、 jcs:load-configuration テンプレートを呼び出して、Junos OS設定に構造化された変更を加えることができます。テンプレートを呼び出して構成を変更する前に、ターゲット・デバイスとの接続を確立する必要があります。テンプレートの詳細については、「 jcs:load-configuration 」および「 SLAX および XSLT スクリプトを使用した設定の変更」を参照してください。

次の SLAX イベント スクリプトは、ローカル デバイスへの接続を開き、 jcs:load-configuration テンプレートを呼び出して設定を変更およびコミットし、接続を閉じます。 jcs:load-configuration テンプレートに必要な値はすべて変数として定義され、引数としてテンプレートに渡されます。

特定のイベントの SLAX イベントスクリプトを呼び出すイベントポリシーを設定するには、次のようにします。

  1. スクリプトをデバイスの /var/db/scripts/event ディレクトリにコピーし、拡張子 .slax を使用するファイル名を指定します(例: config-change.slax)。
  2. イベントスクリプトを設定します。
  3. 特定のイベントのイベントスクリプトを呼び出すイベントポリシーを設定します。次に例を示します。
  4. 設定をコミットします。

Pythonイベントスクリプトを使用して構成を変更する方法

Pythonスクリプトは、 Junos PyEZ ライブラリを使用して、Junos OSを実行しているデバイスの設定を変更することができます。Junos PyEZ jnpr.junos.utils.config.Config ユーティリティは、設定をロック、ロード、コミット、ロック解除するインスタンスメソッドを提供します。

次の Python イベントスクリプトは、ローカルデバイスに接続し、設定を更新してコミットします。

特定のイベントに対して Python イベントスクリプトを呼び出すイベントポリシーを設定するには、次のようにします。

  1. スクリプトをデバイスの /var/db/scripts/event ディレクトリにコピーし、 .py 拡張子を使用するファイル名を指定します(例: config-change.py)。
    手記:

    署名されていないPythonスクリプトは、rootまたはJunos OS super-user ログインクラスのユーザーによって所有されている必要があり、ファイル所有者のみがファイルへの書き込み権限を持つことができます。

  2. デバイス上で署名されていない Python スクリプトの実行を有効にします。
  3. イベントスクリプトと、スクリプトを実行する権限を持つユーザーを設定します。
  4. 特定のイベントのイベントスクリプトを呼び出すイベントポリシーを設定します。次に例を示します。
  5. 設定をコミットします。

Junos PyEZ を使用して Junos OS を実行しているデバイスを設定する方法については、 Junos PyEZ 開発者ガイドを参照してください。

ノンストップ アクティブ ルーティングが有効になっているデバイスでイベント スクリプトを使用して構成を変更する方法

ノンストップアクティブルーティング(NSR)が有効になっているデュアルルーティングエンジンデバイスで、イベントポリシーを使用して設定を変更する場合、プライマリルーティングエンジンでのみ更新された設定をコミットするイベントスクリプトをイベントポリシーで呼び出すことを推奨します。これにより、設定の更新とその後のコミット操作が両方のルーティングエンジンで成功するようになります。 commit synchronize ステートメントはNSR設定の一部として [edit system] 階層レベルに設定されるため、設定は自動的にバックアップルーティングエンジンに同期されます。あるいは、 change-configuration ステートメントを使用して設定を変更した場合、またはイベントスクリプトがプライマリルーティングエンジンのみで変更をコミットしない場合、両方のルーティングエンジンが同時に設定データベースのロックを取得しようとし、その結果、一方または両方のコミットが失敗する可能性があります。

プライマリルーティングエンジン上の設定とコミットのみを行うイベントスクリプトを作成するには、現在のルーティングエンジンがプライマリルーティングエンジンであるかどうかをテストするロジックを含めます。現在のルーティングエンジンがプライマリルーティングエンジンである場合、設定を更新してコミットします。

次の SLAX イベント スクリプトは、ローカル デバイスに接続し、現在のルーティングエンジンがプライマリ ルーティングエンジンであるかどうかを確認します。プライマリルーティングエンジンの場合、スクリプトは設定を更新してからコミットします。

同様に、以下の Python イベントスクリプトは、ローカルデバイスに接続し、現在のルーティングエンジンがプライマリルーティングエンジンである場合にのみ、設定を更新してコミットします。