Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JunosデバイスでYANGパッケージ、モジュール、スクリプトを管理

概要 JunosデバイスでカスタムYANGパッケージを読み込み、独自のリモートプロシージャコール(RPC)とデータモデルをデバイスに追加します。

Junos デバイス上でカスタム YANG モジュールを読み込んで、OS でネイティブにサポートされていないが変換によってサポートできる RPC とデータ モデルを追加できます。非対応の YANG データ モデルをデバイスに読み込む場合、これらのデータ モデルに必要な変換スクリプト、アクション スクリプト、逸脱モジュールも読み込む必要があります。

メモ:

Junos OSリリース17.3R1以降、カスタムYANGデータモデルをデバイスに読み込む際、必要なJunos OS拡張モジュールを明示的に読み込む必要はありません。以前のリリースでは、モジュールを使用するすべてのパッケージの Junos OS 拡張モジュールを読み込む必要があります。

Junosデバイスは、パッケージを使用して、関連するYANGモジュール、翻訳スクリプト、アクションスクリプトのコレクションを識別します。各パッケージには一意の識別子があります。YANG モジュールとスクリプトをデバイスに追加する場合、新しいパッケージまたは既存のパッケージに関連付ける必要があります。このトピックでは、YANG パッケージを作成、更新、削除し、関連するモジュールとスクリプトを追加または更新する方法について説明します。

メモ:

CLI関連のエラーや設定データベースのエラーを防ぐために、デバイスがYANGパッケージの追加、更新、削除、スキーマの変更の実行中は、CLI操作を実行したり、設定を変更したり、操作を終了しないことをお勧めします。

YANGパッケージの作成とモジュールとスクリプトの追加

YANGモジュールとスクリプトを検証し、新しいパッケージに追加するには:

  1. YANG モジュールと必要なスクリプトをデバイス上の任意のディレクトリにダウンロードします。
  2. 署名されていないPythonアクションスクリプトが、Junos OS super-user ログインクラスのルートまたはユーザーのいずれかによって所有され、ファイルの所有者のみがファイルの書き込み権限を持っていることを確認します。
    メモ:

    スクリプトのファイルパーミッションに、ユーザーが受ける最初のクラスの読み取り権限がユーザー、グループなどの順序で含まれている場合、ユーザーはJunosデバイスでのみ署名されていないPythonスクリプトを実行できます。

  3. (オプション)モジュールとスクリプトの構文を検証します。
  4. 一意の識別子を持つYANGパッケージを作成し、そのパッケージに含まれるモジュールとスクリプト、およびそのパッケージ内のモジュールの偏差を識別する逸脱モジュールのファイルパスを指定します。
    メモ:

    単一ファイルへの絶対パスまたは相対パスを指定することも、スペース区切りの角括弧で囲んだファイルパスのリストを指定することで複数のファイルを追加することもできます。

    メモ:

    圧縮タール ファイルとしてパッケージ化された OpenConfig モジュールをインストールするには、 コマンドを request system software add 使用します。コマンドを発行 request system software add してインストールされた OpenConfig モジュールとスクリプトは、常に パッケージ識別子に関連付けられます openconfig

    メモ:

    Junos OSリリース18.3R1以降、 コマンドで設定モード run でのYANGパッケージの追加、削除、または更新はサポートされていません。

  5. Junos OS CLI を再起動するよう求められたら、 を押して Enter デフォルト値を yes受け入れます。
  6. パッケージが作成され、正しいモジュールとスクリプトが含まれていることを確認します。
  7. パッケージに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 を使用してスクリプトを実行します。

  8. マルチシャーシ システムでは、システム内の各ノードでステップ 1 ~ 7 を繰り返します。

新しいパッケージを作成すると、デバイスはモジュールとスクリプト ファイルのコピーを新しい場所に保存します。デバイスは、アクションスクリプトファイルと変換スクリプトファイルのコピーをそれぞれ /var/db/scripts/action および /var/db/scripts/translation ディレクトリに保存します。モジュールとスクリプトが検証され、デバイスに追加された後、Junos OSは新しいデータモデルを含むようにスキーマを再構築し、このスキーマに対してアクティブな設定を検証します。新しく追加された RPC と設定階層は、すぐに使用できます。

メモ:

一時的な設定データベースを使用するデバイスは、スキーマ再構築の過程で一時的な設定データをすべて削除します。

メモ:

Junos OSは、サードパーティのYANGデータモデル(OpenConfigやカスタムYANGデータモデルなど)に対応するステートメントを設定するモードを使用 configure private するサポートしていません。

新しいモジュールまたは変更されたモジュールとスクリプトによる YANG パッケージの更新

コマンドを実行して新しい YANG パッケージを request system yang add 作成します。既存のパッケージを更新して、新しいモジュールとスクリプトをパッケージに追加するか、パッケージ内の既存のモジュールとスクリプトを更新するには、 コマンドを request system yang update 使用する必要があります。

新しいまたは変更されたモジュールとスクリプトでYANGパッケージを更新するには:

  1. デバイス上の任意のディレクトリにモジュールとスクリプトをダウンロードします。
  2. 署名されていないPythonアクションスクリプトが、Junos OS super-user ログインクラスのルートまたはユーザーのいずれかによって所有され、ファイルの所有者のみがファイルの書き込み権限を持っていることを確認します。
    メモ:

    スクリプトのファイルパーミッションに、ユーザーが受ける最初のクラスの読み取り権限がユーザー、グループなどの順序で含まれている場合、ユーザーはJunosデバイスでのみ署名されていないPythonスクリプトを実行できます。

  3. (オプション)モジュールとスクリプトの構文を検証します。
  4. コマンドを発行してYANGパッケージを request system yang update 更新し、新しいモジュールと変更されたモジュールとスクリプトのファイルパスを指定します。
    メモ:

    単一ファイルへの絶対パスまたは相対パスを指定することも、スペース区切りの角括弧で囲んだファイルパスのリストを指定することで複数のファイルを更新することもできます。

    メモ:

    Junos OSリリース18.3R1以降、 コマンドで設定モード run でのYANGパッケージの追加、削除、または更新はサポートされていません。

  5. Junos OS CLI を再起動するよう求められたら、 を押して Enter デフォルト値を yes受け入れます。
  6. パッケージに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 を使用してスクリプトを実行します。

  7. マルチシャーシ システムでは、システム内の各ノードで手順 1 ~ 6 を繰り返します。

パッケージを更新すると、デバイスは新しいモジュールファイルと変更されたモジュールファイルとスクリプトファイルのコピーを保存します。その後、Junos OS はスキーマを再構築して、そのパッケージに関連付けられたデータ モデルに対する変更を含め、このスキーマに対してアクティブな設定を検証します。

メモ:

一時的な設定データベースを使用するデバイスは、スキーマ再構築の過程で一時的な設定データをすべて削除します。

YANG パッケージの削除

注意:

Junos デバイスから YANG パッケージを削除する前に、アクティブな設定に、そのパッケージによって追加されたデータ モデルに依存する設定データが含まれていないことを確認します。

YANG パッケージと、そのパッケージに関連付けられたすべてのモジュールとスクリプトを Junos デバイスから削除するには、次の手順に従います。

  1. アクティブな設定を確認して、削除される YANG モジュールに依存関係があるかどうかを確認します。
  2. 設定にモジュールへの依存関係が含まれている場合は、設定を更新して依存関係を削除します。
  3. コマンドを適切なパッケージ識別子で発行 request system yang delete して、パッケージおよび関連するモジュールとスクリプトを削除します。
    メモ:

    コマンドを使用して、 request system software delete コマンドを発行して、圧縮タール ファイルからインストールされた OpenConfig パッケージを削除する request system software add 必要があります。

    メモ:

    Junos OSリリース18.3R1以降、 コマンドで設定モード run でのYANGパッケージの追加、削除、または更新はサポートされていません。

  4. Junos OS CLI を再起動するよう求められた場合は、 を押して Enter デフォルト値を yes受け入れます。

パッケージを削除すると、Junos OS はそのスキーマを再構築して、そのパッケージに関連付けられているデータ モデルを削除してから、このスキーマに対してアクティブな設定を検証します。デバイスは、パッケージの作成時に生成されたモジュールおよびスクリプト ファイルのコピーを削除します。デバイスは、 /var/db/scripts/action および /var/db/scripts/ translation ディレクトリに格納されているパッケージのアクション スクリプトおよび 翻訳 スクリプト ファイルのコピーも削除します。元のモジュールとスクリプト ファイルを別の場所にダウンロードした場合、元のファイルは変更されません。

メモ:

一時的な設定データベースを使用するデバイスは、スキーマ再構築の過程で一時的な設定データをすべて削除します。

リリース履歴テーブル
リリース
説明
22.3R1-EVO
Junos OS Evolved リリース 22.3R1 以降、Junos OS Evolvedは Python 3 を使用して YANG アクションおよび変換スクリプトを実行します。
20.2R1
Junos OS リリース 20.2R1 以降、Junos OS は Python 3 を使用して YANG アクションと変換スクリプトを実行します。以前のリリースでは、Junos OS は Python 2.7 を使用してこれらのスクリプトを実行していました。
18.3R1
Junos OSリリース18.3R1以降、 コマンドで設定モード run でのYANGパッケージの追加、削除、または更新はサポートされていません。
17.3R1
Junos OSリリース17.3R1以降、カスタムYANGデータモデルをデバイスに読み込む際、必要なJunos OS拡張モジュールを明示的に読み込む必要はありません。