为 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 设备上使用的转换脚本创建框架:

  1. 在您最喜欢的编辑器中,根据需要创建使用.slax 或 .py 文件扩展的新文件。
  2. 包括该脚本的语言所需的必要样板(与提交脚本的样板相同)并包括数据模型所需的名称空间声明。
    • SLAX 代码:

    • Python 代码:

    注意:

    转换脚本必须完全符合转换代码中非阳性数据模型的标识符。

    注意:

    有关 commit 脚本样板代码的信息,请参阅 提交脚本所需的样板 和 自动化脚本用户指南。

  3. 添加代码,将非用户配置数据映射到等效的 Junos OS 语法中,并将转换的配置数据存储在变量中。
    • SLAX 示例代码:

    • Python 示例代码:

  4. 将已翻译的内容添加至结账配置,作为瞬时配置更改,方法是将 SLAX 脚本中的模板或 jcs.emit_change() Python 脚本中的功能称为jcs:emit-change()参数,并transient-change将其标记为参数。
    • SLAX 示例代码:

    • Python 示例代码:

    注意:

    在 SLAX 脚本中,您还可以在元素内 <transient-change> 发出转换的配置,而不是调用 jcs:emit-change() 模板,从而生成瞬时更改。

在设备上执行以下任务,然后再将转换脚本添加至 YANG 包:

  1. 如果转换脚本写在 Python 中,则允许设备在适合 Junos OS 版本时配置 language python 或 language python3 语句来执行未签名的 Python 脚本。

    注意:

    从 Junos OS 20.2R1 版和 Junos OS Evolved 版本 22.3R1 开始,设备使用 Python 3 执行 YANG 操作和转换脚本。在早期版本中,Junos OS 仅使用 Python 2.7 执行这些脚本,而 Junos OS Evolved 默认使用 Python 2.7 执行脚本。

  2. 将脚本下载到设备,并可选择验证语法。

在设备上使用转换脚本之前,必须通过发出 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 模块的配置数据。

发布历史记录表
释放
描述
22.3R1
从 Junos OS Evolved 版本 22.3R1 开始,Junos OS Evolved 使用 Python 3 执行 YANG 操作和转换脚本。
20.2R1
从 Junos OS 20.2R1 版开始,Junos OS 使用 Python 3 执行 YANG 操作和转换脚本。