Junos 運用コマンドの YANG モジュールについて
ジュニパーネットワークスは、Junos 運用モード コマンドのリモート プロシージャ コール(RPC)を定義する YANG モジュールを公開します。多数の操作コマンドがあるため、各デバイスファミリーには複数のYANGモジュールがあります。トップレベルの運用コマンド グループ(clear
、 、など)ごとにモジュールがあり、file
monitor
その階層には RPC と同等のコマンドが 1 つ以上存在します。また、 コマンド階層内の各エリアには、個別のshow
モジュールがあります。
Junos OS リリース 17.2 以降、Junos YANG モジュールはデバイス ファミリーに固有のものであり、モジュール名前空間に新しい規則を使用します。さらに、各運用コマンド モジュールは、そのモジュールに含まれる RPC のコマンド階層エリアを使用して、名前空間のプレフィックスを定義します。Junos OS リリース 17.2 以前は、すべての運用コマンド モジュールのプレフィックスは.jrpc
Junos OSリリース17.4R1以降、Junos OS YANGモジュールは、モジュールの名前、ファイル名、名前空間に新しい命名規則を使用します。詳細については、 Junos YANGモジュールについてを参照してください。
運用コマンド モジュールは、ファイル名に示されているコマンド階層領域の運用コマンドに対応する RPC を定義します。以下の例は、コマンド階層のコマンド用の RPC を含むモジュールの一部を clear
示しています。
user@host> file show /var/tmp/yang/junos-rpc-clear@2017-01-01.yang /* * Copyright (c) 2017 Juniper Networks, Inc. * All rights reserved. */ module junos-rpc-clear { namespace "http://yang.juniper.net/junos/rpc/clear"; prefix clear; import junos-common-types { prefix jt; } organization "Juniper Networks, Inc."; contact "yang-support@juniper.net"; description "Junos RPC YANG module for clear command(s)"; revision 2017-01-01 { description "Junos: 17.4R1.17"; } rpc clear-cli-logical-system { description "Clear logical system association"; output { leaf output { type string; } } } rpc clear-cli-satellite { description "Clear satellite association"; output { leaf output { type string; } } } ...
YANG は、 ステートメントを使用して操作をrpc
定義します。RPC 定義には、操作の入力パラメーターとoutput
出力パラメーターを記述するサブステート メントを含input
めることができます。Junos OS リリース 23.1R1 以降、RPC のoutput
ステートメントには正確な出力スキーマが含まれており、Junos デバイスはデフォルトで新しいスキーマを出力します。
以前のリリースでは、RPC の出力スキーマには、RPC 応答内の XML の未知のチャンクを表すステートメントが含まれていますanyxml
。Junos デバイスで ステートメントをanyxml
含む RPC スキーマを生成するには、 階層レベルで および emit-anyxml-in-rpc-output
ステートメントを[edit system services netconf yang-modules]
設定device-specific
します。ステートメントを設定した後、 コマンドは show system schema
を使用anyxml
するスキーマを生成します。
Junos YANG モジュールは、ジュニパーネットワークスのダウンロード サイトまたは YANG 用のジュニパーネットワークス GitHub リポジトリからダウンロードすることも、ローカル デバイスでモジュールを生成することもできます。ローカルデバイスで運用コマンドYANGモジュールを生成するには、 コマンドを show system schema format yang module module
発行します。Junos OS リリースでは、使用可能なコマンド オプションが決定されます。
-
Junos OS リリース 17.3 以前では、すべての操作コマンド モジュールを
juniper-command
生成するモジュールを指定します。user@host> show system schema format yang module juniper-command
メモ:Junos OS リリース 17.1 以降では、モジュールを
juniper-command
生成すると、出力ファイルはユーザーのホーム ディレクトリにデフォルト設定されている現在の作業ディレクトリに配置されます。Junos OSリリース16.2以前では、出力ファイルは /var/tmp ディレクトリに置かれます。 -
Junos OSリリース17.4R1以降では、単一の運用コマンドモジュールを返す個々のモジュール名を指定するか、すべての運用コマンドモジュールを返すを指定
all-rpc
します。user@host> show system schema format yang module all-rpc output-directory /var/tmp/yang
Junos OS リリース 19.1R2 および 19.2R1 以降、コマンドには コマンド オプションを
output-directory
含め、show system schema
ファイルまたはファイルを生成するディレクトリを指定する必要があります。以前のリリースでは、単一モジュールに標準出力でモジュールをoutput-directory
表示するよう要求する場合、オプションを省略することができます。
リモート セッションからモジュールを生成するには、Junos OS RPC または NETCONF 操作を<get-schema>
適切なオプションで実行<get-yang-schema>
します。
または module all-rpc
を指定module juniper-command
した場合、出力ファイルには、ネイティブの Junos 運用コマンド モジュールと、デバイスに追加された標準またはカスタムの運用コマンド モジュールの両方が含まれます。カスタム YANG モジュールで RPC を使用するには、目的の RPC を含むモジュールをカスタム モジュールにインポートする必要があります。
階層レベルで ステートメントをemit-extensions
[edit system services netconf yang-modules]
設定して、追加のJunos拡張ステートメントでYANGスキーマを出力できます。Junos 拡張は、Junos MPLS 拡張 YANG モジュールについてで定義されています。デバイスは、junos:command
Junos OS リリース 22.4R1 以降およびリリース 22.4R1 Junos OS Evolved拡張ステートメントを発行します。
Junos OSリリース17.4R1以降、ローカルデバイスで生成されたネイティブYANGモジュールには、ファミリー固有のスキーマが含まれています。これは、特定のデバイスファミリー内のすべてのデバイスで同一です。以前のリリースでは、生成されたモジュールにはデバイス固有のスキーマが含まれています。Junos OS リリース 17.4R1 以降でデバイス固有のモジュールを生成するには、 階層レベルで 設定ステートメントを[edit system services netconf yang-modules]
設定device-specific
します。
junos:command
。
output-directory
含め、
show system schema
ファイルまたはファイルを生成するディレクトリを指定する必要があります。
juniper-command
すると、出力ファイルは現在の作業ディレクトリに配置され、デフォルトはユーザーのホームディレクトリになります。