为 YANG 配置模型创建转换脚本
您可以在 Junos 设备上加载 YANG 模块以添加不受操作系统本机支持但可通过转换支持的数据模型。使用非native YANG 数据模型扩展配置层次结构时,还必须提供一个或多个翻译脚本,该脚本提供逻辑以将非用户配置语法映射到相应的 Junos OS 语法。
转换脚本将与非native YANG 数据模型对应的配置数据转换为 Junos OS 语法,并在提交操作期间将转换的配置数据添加为结账配置中的瞬时更改。转换脚本可在 Python 或 SLAX 中编写,类似于结构中的提交脚本。有关创建在配置中生成瞬时更改的 SLAX 和 Python 脚本的信息,请参阅 自动化脚本用户指南。
您可使用 request system yang add
或 request system yang update
命令将 YANG 模块及其关联的转换脚本添加到设备上的新或现有 YANG 软件包中。将模块和转换脚本添加至设备后,可在这些模块添加的数据模型中配置语句和层次结构。加载并提交配置数据时,设备会调用脚本来执行转换并生成瞬时配置更改。
本主题讨论翻译脚本的常规结构。实际脚本中所需的特定翻译逻辑取决于添加到模式的自定义层次结构,超出本主题的范围。
要为 Junos 设备上使用的转换脚本创建框架:
在设备上执行以下任务,然后再将转换脚本添加至 YANG 包:
-
如果转换脚本写在 Python 中,则允许设备在适合 Junos OS 版本时配置
language python
或language python3
语句来执行未签名的 Python 脚本。[edit] user@host# set system scripts language (python | python3)
注意:从 Junos OS 20.2R1 版和 Junos OS Evolved 版本 22.3R1 开始,设备使用 Python 3 执行 YANG 操作和转换脚本。在早期版本中,Junos OS 仅使用 Python 2.7 执行这些脚本,而 Junos OS Evolved 默认使用 Python 2.7 执行脚本。
-
将脚本下载到设备,并可选择验证语法。
user@host> request system yang validate translation-script script
在设备上使用转换脚本之前,必须通过发出 request system yang add
或 request system yang update
命令将脚本和相关模块添加到新的或现有的 YANG 包中。添加模块和脚本之后,当您在相应的数据模型中提交配置数据时,将自动调用转换脚本。
配置对应第三方 YANG 数据模型(例如 OpenConfig 或自定义 YANG 数据模型)的语句时, 不 支持以下功能:
-
使用
configure batch
或configure private
模式 -
在层次结构下
[edit groups]
配置语句
活动配置和候选配置包含这些模型定义的语法中的非典型 YANG 数据模型的配置数据。但是,由于已转换的配置数据被提交为瞬时更改,因此当您发出 show
或 show configuration
命令时,活动配置和候选配置不会在 Junos OS 语法中显式显示已转换的数据。要在查看配置时应用 YANG 转换脚本,请使用 | display translation-scripts
过滤器。
要查看包含显式已转换数据(瞬时更改)的完整继承后配置,请在操作模式或配置模式下将过滤器附加 | display translation-scripts
到 show configuration
命令或 show
命令。要在转换后仅查看非基本配置数据,请使用 | display translation-scripts translated-config
过滤器。
在配置模式下,只需显示对应于非状态 YANG 数据模型的配置数据更改,在应用转换脚本之前或之后,请分别将或translated-delta
关键字附加configured-delta
到 show | display translation-scripts
命令。在这两种情况下,XML 输出都显示已删除的配置数据,然后是新的配置数据。
有关过滤器的 | display translation-scripts
详细信息,请参阅 提交和显示非native YANG 模块的配置数据。