了解 Junos OS 自动化脚本中的扩展功能
Junos OS 提供自动化脚本工具,包括扩展功能和命名模板,可用于提交、操作、事件和 SNMP 脚本,以便更轻松地在运行 Junos OS 的设备上完成脚本任务。这些库提供逻辑、数据操纵、输入和输出以及实用功能,使您能够执行 XPath 中难以执行或无法执行的操作。 表 1 汇总了瞻博网络的扩展功能。
要使用扩展功能,Python 自动化脚本必须导入 jcs
模块,而 SLAX 和 XSLT 脚本必须在样式表中声明相应的名称空间 URI。名称空间中的 jcs
功能在名称空间 URI http://xml.juniper.net/junos/commit-scripts/1.0 中定义,名称空间中的 slax
功能在名称空间 URI http://xml.libslax.org/slax 中定义。
从 Junos OS 版本 12.2 开始,支持使用 slax
名称空间的功能。使用名称空间中早期版本中 jcs
存在的与 Junos OS 无关的扩展功能的脚本可使用 jcs
Junos OS 版本 12.2 中的名称空间或 slax
名称空间。但是,要在早期 Junos OS 版本中使用这些功能中的任何一项,脚本必须使用 jcs
名称空间 URI。
SLAX 脚本语句可确定该脚本 version
中可使用哪些功能。要使用特定 SLAX 版本中引入的功能,脚本 version
语句的值必须等于或大于引入该功能的版本。例如,SLAX 语言版本 1.1 中引入的功能不能在具有“版本 1.0”语句的 SLAX 脚本中使用。
SLAX 脚本还可使用 libslax 默认扩展库中的附加功能。有关更多信息,请参阅 libslax 默认扩展库:位、Curl、db、os 和 xutil。
Python 自动化脚本仅支持一部分扩展功能。对于许多不受支持的功能,您可以使用标准 Python 库实现相同的功能。
功能 |
名称空格 |
SLAX 版本 |
类型 |
描述 |
Python 脚本支持 |
---|---|---|---|---|---|
slax |
1.1 |
数据操纵 |
解码 BASE64 编码数据并返回字符串。 |
– |
|
slax |
1.1 |
数据操纵 |
以 BASE64 编码格式对一串数据进行编码。 |
– |
|
jcs, slax |
1.0 |
数据操纵 |
将简单元素分解成多个元素,由新线路划定。 |
– |
|
Jcs |
1.0 |
实用 |
关闭先前打开的连接手柄。 |
– |
|
jcs, slax |
1.0 |
实用 |
防止在脚本中重复执行相同的操作。 |
Y |
|
slax |
1.1 |
输入/输出控制 |
从文件或 URL 中读取数据并返回字符串。 |
– |
|
– |
– |
实用 |
在提交脚本中生成对配置的持久或瞬态更改。 |
Y |
|
– |
– |
输入/输出控制 |
在控制台上生成错误消息。 |
Y |
|
– |
– |
输入/输出控制 |
从 SNMP 脚本中返回请求的 MIB 对象的信息。 |
Y |
|
– |
– |
输入/输出控制 |
在控制台上生成警告消息。 |
Y |
|
jcs, slax |
1.0 |
逻辑 |
评估节点集或字符串参数,以确定其是否为空值。 |
– |
|
slax |
1.1 |
输入/输出控制 |
评估 SLAX 表达式并返回结果。 |
– |
|
Jcs |
1.0 |
实用 |
在指定连接手柄的上下文中执行 远程过程调用 (RPC)。 |
– |
|
jcs, slax |
1.0 |
逻辑 |
返回列表中的第一个无内容(非空)物品,如果列表中的所有对象都是空的,则会返回默认表达式。 |
– |
|
jcs, slax |
1.1 |
输入/输出控制 |
提示用户进行命令输入,然后以字符串形式返回输入。 |
– |
|
Jcs |
1.0 |
实用 |
在 NETCONF 会话期间返回 NETCONF 服务器的会话 ID 和功能。 |
– |
|
|
jcs, slax |
1.0 |
输入/输出控制 |
调用 CLI 提示符并等待用户输入。如果脚本非交互式运行,则该功能将返回空值。此功能不能与事件脚本一起使用。 |
Y |
Jcs |
1.0 |
实用 |
返回与连接手柄关联的会话协议。 |
– |
|
|
jcs, slax |
1.0 |
输入/输出控制 |
调用 CLI 提示符并等待用户输入。输入未回传给用户。 |
Y |
– |
– |
输入/输出控制 |
检索传递到 SNMP 脚本的操作值。 |
Y |
|
– |
– |
输入/输出控制 |
检索传递到 SNMP 脚本的 OID 值。 |
Y |
|
Jcs |
1.0 |
实用 |
只要设备上配置了 DNS 服务器,即可返回与给定 IPv4 或 IPv6 地址关联的完全限定域名。 |
Y |
|
Jcs |
1.0 |
实用 |
在运行 Junos OS 的本地设备上调用 RPC。 |
– |
|
Jcs |
1.0 |
实用 |
退还可用于执行 RPC 的连接手柄。 |
– |
|
jcs, slax |
1.0 |
输入/输出控制 |
生成未格式化的输出文本,并立即发送至 CLI 会话。 |
Y |
|
Jcs |
1.0 |
数据操纵 |
解析 IPv4 或 IPv6 地址,然后返回主机 IP 地址、协议族、前缀长度、网络地址和网络掩码。 |
Y |
|
jcs, slax |
1.0 |
输入/输出控制 |
生成格式化输出文本。除了某些 Junos OS 特定格式外,还支持大多数标准 |
Y |
|
jcs, slax |
1.0 |
输入/输出控制 |
向 CLI 会话发出包含单个论点的进度消息, |
Y |
|
jcs, slax |
1.0 |
数据操纵 |
根据给定的字符串论点评估正则表达式并返回任何匹配项。 |
– |
|
- |
- |
实用 |
对协议软件 (TCP/UDP) 进行编程,以使用非默示路由实例。 |
Y |
|
jcs, slax |
1.0 |
实用 |
导致脚本在指定时间内睡觉。 |
– |
|
jcs, slax |
1.0 |
数据操纵 |
将一根字符串分割成一系列通过正则表达式模式划定的子站。 |
– |
|
jcs, slax |
1.0 |
实用 |
将既定 |
Y |
|
jcs, slax |
1.0 |
输入/输出控制 |
具有系统日志文件指定优先级的日志消息。 |
Y |
|
jcs, slax |
1.0 |
输入/输出控制 |
发出追踪消息,发送至追踪文件。 |
Y |