了解 Junos 操作命令的 YANG 模块
瞻博网络发布 YANG 模块,用于定义 Junos 操作模式命令的远程过程调用 (RPC)。由于操作命令数量庞大,因此每个设备系列都存在多个 YANG 模块。每个顶级操作命令组 (clear
、 file
monitor
、 等) 都有一个模块,其中该层次结构中至少有一个命令具有 RPC 等效项。命令层次结构中的每个show
区域还有一个单独的模块。
从 Junos OS 17.2 版开始,Junos YANG 模块特定于设备系列,并且对模块命名空间使用新的约定。此外,每个单独的操作命令模块都使用该模块中包含的 RPC 的命令层次结构区域来定义其命名空间前缀。在 Junos OS 17.2 版之前,所有操作命令模块的前缀都是 jrpc
。
从 Junos OS 17.4R1 版开始,Junos OS YANG 模块对模块的名称、文件名和命名空间使用新的命名约定。有关更多信息,请参阅 了解 Junos YANG 模块。
操作命令模块定义与文件名中指示的命令层次结构区域中的操作命令对应的 RPC。以下示例显示了模块的一部分,其中包含命令层次结构中 clear
用于命令的 RPC:
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 定义可以包含 input
描述 output
操作输入和输出参数的子陈述。从 Junos OS 23.1R1 版开始,RPC 语句 output
会包含准确的输出方案,并且 Junos 设备默认会发出新模式。
在早期版本中,RPC 的输出方案包括anyxml
表示 RPC 回复中不明 XML 块的语句。要生成在 Junos 设备上包含语句的 anyxml
RPC 方案,请在device-specific
[edit system services netconf yang-modules]
层次结构级别配置 and emit-anyxml-in-rpc-output
语句。配置语句后,show system schema
命令将生成使用anyxml
的方案。
您可以从瞻博网络下载站点或瞻博网络 YANG GitHub 存储库下载 Junos YANG 模块,也可以在本地设备上生成这些模块。要在本地设备上生成操作命令 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 版开始,
show system schema
命令必须包含output-directory
命令选项并指定生成一个或多个文件的目录。在早期版本中,当请求单个模块以标准输出显示模块时,可以省略output-directory
选项。
要通过远程会话生成模块,请使用适当的选项执行 <get-yang-schema>
Junos OS RPC 或 <get-schema>
NETCONF 操作。
如果指定 module juniper-command
或 module all-rpc
,则输出文件既包括本机 Junos 操作命令模块,也包括已添加到设备中的任何标准或自定义操作命令模块。要在自定义 YANG 模块中使用 RPC,必须将包含所需 RPC 的模块导入自定义模块。
您可以在层次结构级别配置 emit-extensions
语句 [edit system services netconf yang-modules]
,以使用其他 Junos 扩展语句发出 YANG 模式。在 了解 Junos DDL 扩展 YANG 模块中定义了 Junos 扩展。设备从 Junos OS 22.4R1 版和 Junos OS 演化版 22.4R1 开始发出 junos:command
扩展语句。
从 Junos OS 17.4R1 版开始,本地设备上生成的本机 YANG 模块包含特定于家族的模式,这些模式在给定设备系列中的所有设备上都是相同的。在早期版本中,生成的模块包含特定于设备的方案。要生成 Junos OS 17.4R1 及更高版本的设备特定模块,请在device-specific
[edit system services netconf yang-modules]
层次结构级别配置配置语句。
junos:command
随扩展发出的方案中包括扩展语句。
show system schema
命令必须包含
output-directory
命令选项并指定生成一个或多个文件的目录。
juniper-command
模块时,输出文件会放置在当前工作目录中,默认为用户的主目录