Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

YANG 設定モデルの変換スクリプトを作成する

Junos デバイスで YANG モジュールを読み込んで、OS でネイティブにサポートされていないが変換によってサポートできるデータ モデルを追加できます。非対応の YANG データ モデルで設定階層を拡張する場合、非対応の設定構文を対応する Junos OS 構文にマッピングするロジックを提供する 1 つ以上の変換スクリプトも提供する必要があります。

変換スクリプトは、非対応のYANGデータモデルに対応する設定データをJunos OS構文に変換し、コミット操作中に、チェックアウト設定の一時的な変更として変換された設定データを追加します。翻訳スクリプトは Python または SLAX のいずれかで記述でき、構造上のコミット スクリプトと似ています。設定で一時的な変更を生成するSLAXおよびPythonスクリプトの作成については、 自動化スクリプトユーザーガイドを参照してください。

または request system yang update コマンドをrequest system yang add使用して、YANGモジュールとそれに関連する変換スクリプトをデバイス上の新規または既存のYANGパッケージに追加します。モジュールと変換スクリプトをデバイスに追加した後、これらのモジュールによって追加されたデータ モデル内のステートメントと階層を設定できます。設定データを読み込んでコミットすると、デバイスはスクリプトを呼び出して変換を実行し、一時設定変更を生成します。

このトピックでは、翻訳スクリプトの一般的な構造について説明します。実際のスクリプトに必要な具体的な変換ロジックは、スキーマに追加されたカスタム階層によって異なり、このトピックの範囲外です。

Junos デバイスで使用される変換スクリプトのフレームワークを作成するには、以下の手順にしたがってください。

  1. お気に入りのエディタで、必要に応じて.slaxまたは.pyのファイル拡張子を使用する新しいファイルを作成します。
  2. コミット スクリプトの定型プレートと同じ、そのスクリプトの言語に必要な定型文を含め、データ モデルに必要な名前空間宣言も含めます。
    • SLAXコード:

    • Python コード:

    メモ:

    翻訳スクリプトは、翻訳コード内の非該当の YANG データ モデルの識別子を完全に修飾する必要があります。

    メモ:

    コミット スクリプトの定型コードについては、「 Commit Scripts に必要な定型文 」および「 自動化スクリプト ユーザー ガイド」を参照してください。

  3. 非集約型の設定データを同等の Junos OS 構文にマッピングし、変換された設定データを変数に格納するコードを追加します。
    • SLAX サンプル コード:

    • Python サンプル コード:

  4. SLAXスクリプトでテンプレートを呼び出すかjcs.emit_change()、Pythonスクリプトの関数を変換された設定とtransient-changeタグを引数として呼び出jcs:emit-change()すことで、一時的な設定変更として変換されたコンテンツをチェックアウト設定に追加します。
    • SLAX サンプル コード:

    • Python サンプル コード:

    メモ:

    SLAX スクリプトでは、テンプレートを呼び出す代わりに、変換された構成を要素内に出力することで一時的な <transient-change> 変更を jcs:emit-change() 生成することもできます。

デバイスで、YANG パッケージに変換スクリプトを追加する前に、以下のタスクを実行します。

  1. 変換スクリプトがPythonで記述されている場合、Junos OSリリースに応じて または language python3 ステートメントをlanguage python設定して、デバイスが符号なしPythonスクリプトを実行できるようにします。

    メモ:

    Junos OS リリース 20.2R1 およびリリース 22.3R1 Junos OS Evolved以降、デバイスは Python 3 を使用して YANG アクションと変換スクリプトを実行します。以前のリリースでは、Junos OS はこれらのスクリプトの実行に Python 2.7 のみを使用し、Junos OS Evolvedはデフォルトで Python 2.7 を使用してスクリプトを実行します。

  2. スクリプトをデバイスにダウンロードし、オプションで構文を検証します。

デバイスで翻訳スクリプトを使用する前に、 または request system yang update コマンドを発行して、スクリプトと関連モジュールを新規または既存の YANG パッケージにrequest system yang add追加する必要があります。モジュールとスクリプトを追加した後、対応するデータ モデルの設定データをコミットすると、変換スクリプトが自動的に呼び出されます。

OpenConfigやカスタムYANGデータモデルなど、サードパーティのYANGデータモデルに対応するステートメントを設定する場合、以下の機能はサポート されません

  • または モードのconfigure private使用configure batch

  • 階層下のステートメントの [edit groups] 設定

アクティブな設定と候補となる設定には、それらのモデルで定義されたシンタックスの非対応YANGデータモデルの設定データが含まれています。ただし、変換された設定データは一時的な変更としてコミットされるため、アクティブな設定と候補の設定では、 または show configuration コマンドを発行しても、Junos OS 構文で変換されたデータは明示的にshow表示されません。設定を表示するときに YANG 変換スクリプトを適用するには、 フィルターを| display translation-scripts使用します。

変換されたデータ(一時変更)を明示的に含めた完全なポスト継承後の設定を表示するには、設定モードで コマンドまたは設定モードの コマンドにフィルターshow configurationshow追加| display translation-scriptsします。変換後の非native設定データのみを表示するには、フィルターを| display translation-scripts translated-config使用します。

設定モードでは、変換スクリプトが適用される前または後に、非対応のYANGデータモデルに対応する設定データへの変更のみを表示するには、 または キーワードをそれぞれ コマンドにshow | display translation-scripts追加configured-deltatranslated-deltaします。どちらの場合も、XML 出力には削除された設定データの後に新しい設定データが表示されます。

フィルターの | display translation-scripts 詳細については、 非対応 YANG モジュールの設定データのコミットと表示を参照してください。

リリース履歴テーブル
リリース
説明
22.3R1
Junos OS Evolved リリース 22.3R1 以降、Junos OS Evolvedは Python 3 を使用して YANG アクションおよび変換スクリプトを実行します。
20.2R1
Junos OS リリース 20.2R1 以降、Junos OS は Python 3 を使用して YANG アクションと変換スクリプトを実行します。