Junos OSを実行するデバイスでカスタムYANG RPCを使用する
Junos OS を実行しているサポート対象デバイスでカスタム RPC を定義する YANG データ モデルを追加できます。カスタム RPC を作成することで、これらのデバイス上の特定の運用タスクに対する入力パラメーターと運用フィールドと書式設定を正確に定義できます。
Junos OS を実行するデバイスに RPC を追加するには、RPC を定義する YANG モジュールと必要なアクション スクリプトをデバイスにダウンロードし、 または request system yang update
運用コマンドを発行して新しい YANG パッケージまたは既存の YANG パッケージにファイルをrequest system yang add
追加します。Junos OS を実行するデバイスへの YANG モジュールの追加の詳細については、「 Junos OS を実行するデバイスでの YANG パッケージ、モジュール、スクリプトの管理」を参照してください。
Junos OSリリース17.3R1以降、カスタムYANGデータモデルをデバイスに読み込む際、必要なJunos OS拡張モジュールを明示的に読み込む必要はありません。以前のリリースでは、モジュールを使用するすべてのパッケージの Junos OS 拡張モジュールを読み込む必要があります。
モジュールとアクション・スクリプトをデバイスに追加した後、RPC 定義に ステートメントが含まれている場合、またはリモートで RPC を junos:command
ローカルに実行できます。Junos OS CLI で RPC を実行するには、RPC junos:command
のステートメントで定義された コマンドを発行します。RPC をリモートで実行するには、RPC リクエスト操作で RPC 名を使用します。
次の YANG モジュールと RPC 定義を考慮してください。
module sw-info { namespace "http://yang.juniper.net/examples/rpc-cli"; prefix rpc-cli; import junos-extension { prefix junos; } rpc get-sw-info { description "Show software information"; junos:command "show sw-info" { junos:action-execute { junos:script "sw-info.py"; } } input { leaf routing-engine { type string; description "Routing engine for which to display information"; } ... } output { ... } } }
Junos OS リリース 17.3 以降、 action-execute
ステートメントは. command
以前のリリースでは、 action-execute
および command
ステートメントは同じレベルに配置され command
、 ステートメントはオプションです。
Junos OS CLI でこの RPC を実行するには、 ステートメントで定義された コマンドをjunos:command
発行show sw-info
し、必須またはオプションの入力パラメーターを含めます。例えば:
user@host> show sw-info routing-engine re0
この RPC をリモートで実行するには、リクエスト タグに RPC 名を使用する RPC リクエストを送信し、必須またはオプションの入力パラメーターを含めます。
<rpc> <get-sw-info> <routing-engine>re0</routing-engine> </get-sw-info> </rpc>
カスタム RPC を実行すると、デバイスは ステートメントで定義されているアクション スクリプトを junos:script
呼び出します。この例では 、sw-info.py スクリプトです。RPC のアクション スクリプトは、RPC の出力に必要な XML 要素を発行する必要があります。
ステートメントで定義されたコマンドを発行してJunos OS CLIでRPCを実行すると、RPCで定義された junos:command
CLIフォーマットを使用して、RPC出力(存在する場合)がデバイスに表示されます。RPC が CLI フォーマットを定義していない場合、デバイスはその RPC の出力を CLI に表示しません。ただし、 コマンドを追加することで、CLI で RPC の XML 出力を | display xml
表示することもできます。
user@host> show sw-info routing-engine re0 | display xml
RPC をリモートで実行すると、RPC 出力はデフォルトで XML になります。ただし、RPC の開始要求タグに 属性をformat
含めることで、異なる出力形式を指定することができます。CLI フォーマットを表示するには、RPC がこのフォーマットを定義している場合は、 または に属性をformat
text
設定しますascii
。JavaScript Object Notation(JSON)で出力を表示するには、属性を format
に設定しますjson
。例えば:
<rpc> <get-sw-info format="text"> <routing-engine>re0</routing-engine> </get-sw-info> </rpc>