脚本注释
脚本注释用于指定脚本的元数据。它们嵌入脚本中。在修改或导入脚本时,它们会解析并存储在 Junos Space 网络管理平台数据库中。注释使用以下语法:
/* @[ANNOTATION]= “<ANNOTATION CONTENT>” */
可以在脚本中的任何位置提供注释。
注释用于指定脚本的名称、说明和确认文本以及可应用脚本的上下文。有关注释的示例脚本,请参阅 Script 示例。 表 1 显示脚本注释的类型及其说明。
注释 |
描述 |
---|---|
@CONTEXT |
此注释用于指定可应用脚本的上下文。未指定上下文时,默认上下文将被视为/设备。例子: /* @CONTEXT = "/device/chassis-inventory/chassis/chassis-module[starts-with (name,"FPC")]/chassis-sub-module[starts-with(name,"PIC")]" */
注意:
只有在脚本上下文为/、//或/设备且未指定设备特定或实体特定参数的情况下,才能在 200 多个设备上执行脚本。 |
@NAME |
此注释用于指定脚本的描述性名称。 例子:
|
@CATEGORY |
此注释用于指定脚本所属的类别。通过此注释,您可以根据任何标准对脚本进行分组。注释不能超过 255 个字符。它只能包含字母和数字,可以包括连字符 (-)、下划线 (_)、空间 () 或句点 (.)。例子:
|
@DESCRIPTION |
此注释用于指定脚本的说明。例子:
|
@CONFIRMATION |
此注释用于指定脚本的确认文本。也就是说,在尝试执行脚本时必须显示的文本。未提供此字段时,不会显示在执行脚本时显示确认文本。这可用于为某些脚本创建警告。例子:
|
@EXECUTIONTYPE |
此注释用于指定执行类型。执行类型为 GROUPEDEXECUTION 和 SINGLEEXECUTION。未指定此注释时,默认选项为 SINGLEEXECUTION。例子:
|
@GROUPBYDEVICE |
此注释用于指定脚本必须同时执行还是按顺序在选定设备上执行。注释仅适用于执行类型为 GROUPEDEXECUTION 且@ISLOCAL真实的脚本。您可以从 Junos Space 网络管理平台版本 15.2R1 继续添加 GROUPBYDEVICE 注释。 如果注释设置为 TRUE,则该脚本将同时在选定设备上执行。如果设置为 FALSE,或者脚本中未包含注释,则在选定设备上依次执行脚本。例子:
|
@ISLOCAL |
此注释用于定义脚本是在本地执行还是在设备上暂定。这可能是真或假。 例子:
|
@VARIABLECONTEXT |
此注释用于定义变量的上下文。例子: /*@VARIABLECONTEXT="[{'name':'XPATHVARIABLE1','defaultvalue' :'mydefaultvalue','parameterscope':'devicespecific'},{'name' :'XPATHVARIABLE2','configuredvaluexpath':'/device/interface-information/ physical-interface/name/text()','parameterscope':'entityspecific'},{' name':'XPATHVARIABLE3','selectionvaluesxpath':'/device/ interface-information/physical-interface/name/text()','parameterscope':'global'}]"*/ |
@PASSSPACEAUTHHEADER |
此注释特定于本地脚本。如果注释设置为 True,则会设置$JSESSIONSSO和$JSESSIONID脚本变量。 例子:
此注释还提供$VIP群集的虚拟 IP 地址。 |
@PASSDEVICECREDENTIALS |
此注释特定于本地脚本。如果注释设置为真实,Junos Space 平台会将设备凭据设置为 $credentials 和 $deviceipmap 变量(即$deviceipmap='{“192.168.0.210”:“Device1”,...}')。例子:
|
@PROMOTE |
此注释用于定义脚本是否可用于执行,作为右键式操作。这仅适用于具有@EXECUTIONTYPE = “SINGLEEXECUTION”注释的脚本。 |
@ONCLOSESTRING |
当用户希望在收到预期结果后自动关闭脚本执行结果页面时,将使用此注释。@ONCLOSESTRING注释包含一个字符串。此字符串与脚本执行结果进行比较。当指定字符串显示在脚本输出中时,脚本执行结果页面将自动关闭。@ONCLOSESTRING注释对于脚本推广很有用。 例如,如果用户在重新启动脚本中包含@ONCLOSESTRING注释,其中包含在成功执行脚本并执行所推广的重新启动脚本时显示的字符串。脚本执行结果页面自动关闭,重新启动命令成功发送至设备。如果脚本未成功执行,则故障原因将显示在脚本执行结果窗口中。这进一步减少了用户完成操作所需的单击次数,从而进一步改善了用户体验。 |
@FAILJOBSTRING |
此注释用于指定任意字符串,如果脚本输出中存在该字符串,则表示脚本执行失败。@FAILJOBSRTING注释可采用不超过 255 个字符的任意字符串值。由于字符串比较是案例敏感的,因此请确保为@FAILJOBSTRING指定的字符串和脚本输出中的字符串使用相同的套管。 @FAILJOBSRTING注释的值也可用作标记名称。如果脚本输出包含标记,则相应的工作标记为故障。
|
脚本执行类型
借助 SINGLEEXECUTION 脚本执行类型,脚本只能一次在单个元素上执行。如果脚本开发人员希望确保脚本执行不会同时执行多个元素,这很有帮助。
借助 GROUPEDEXECUTION 脚本执行类型,将同时为一组设备执行脚本。属于组的元素的上下文作为表达式传递至脚本中的$CONTEXT变量。这样,脚本就会随脚本的执行元素一起提供。
例如,对于 GROUPEDEXECUTION,上下文结构可以如下所示:
/device[name="EX4200-20"]/interface-information/physical-interface[name="ge-0/0/11"]| /device[name="EX4200-20"]/interface-information/physical-interface[name="ge-0/0/12"], /device[name="EX4200-240"]/interface-information/physical-interface[name="ge-0/0/5"]| /device[name="EX4200-240"]/interface-information/physical-interface[name="ge-0/0/6"].
可变上下文
可变上下文定义脚本对用户的期望输入。此环境可用于自动传动用户输入选项。此行为与 CLI Configlets 中的参数类似。可变上下文使用@VARIABLECONTEXT注释定义。提供以下格式的选项:
@VARIABLECONTEXT = "[{'name':'<variable-name-1>', '<option-1-1>':'<value-1-1>','<option-1-2>':'<value-1-2>',....,},.....,{'name':'<variable-name-n>', '<option-n-1>':'<value-n-1>','<option-n-2>':'<value-n-2>',....,}]"
表 2 解释了可能的选项。
选项 |
描述 |
---|---|
配置的价值价位通道 |
这指定了必须从中获取参数值的 XPath(参阅设备 XML)。 |
默认值 |
行为与 XPath 的配置值相同,但明确给出的值除外。只有在未指定“配置价值通道”时才考虑此情况。 |
选择价值路径 |
其中包含 XPath(参阅设备 XML),用于获取用于填充选项的一组值。 |
选择价值 |
这与“选择值”相同,只是明确给出了逗号分隔值。 |
参数镜 |
用于指定参数的范围。
|
密码 |
使用此选项允许用户在执行脚本之前输入密码。这样可以掩盖或显示执行操作脚本时输入的输入参数。如果使用“密码”选项配置输入参数的@VARIABLECONTEXT脚本注释,则此字段中输入的输入参数将被掩盖或显示,具体取决于以下值:
|
本地脚本执行
借助 Junos Space,您可以在一个或多个设备中同时执行操作脚本,而无需暂存并启用脚本。为此,您可以使用本地脚本执行功能。此功能允许您在 Junos Space 服务器本地执行脚本。脚本中的@ISLOCAL注释必须设置为真实,以便将正常脚本与本地脚本区分开来:
/*@ISLOCAL="true"*/
本地脚本直接在 Junos Space 服务器中运行,因此无需分阶段、启用或禁用这些脚本。如果已暂侯的脚本使用@ISLOCAL注释进行修改,则更新被拒绝。
您可以在一个或多个选定设备上执行本地脚本。对于群集设置,您需要在 VIP 节点上执行脚本。
对于 GROUPEDEXECUTION 执行类型,设备 IP 地址列表将作为参数传递。该脚本在与设备交互之前打开内部连接。
通过将 GROUPBYDEVICE 设置为 TRUE,您可以同时在多个设备上使用 GROUPEDEXECUTION 执行类型执行本地脚本。如果 GROUPBYDEVICE 注释设置为 FALSE 或注释未出现在脚本中,则脚本将在所选设备上依次执行。
本地脚本可在具有 Junos Space 启动连接的设备上执行。
嵌套变量
您可以使用 XPath 上下文来定义脚本执行页面上显示的变量的默认选项或可选选项。此 XPath 可能依赖于其他变量。请考虑以下示例:
脚本需要两路输入:物理接口 (Input-1) 和逻辑接口 (Input-2),这是所选物理接口 (Input-1) 的一部分。您首先定义可获取物理接口名称的变量PHYINT和获取逻辑接口名称的变量LOGINT。然后将 PHYINT 的 SELECTIONVALUESXPATH 定义为 /device/interface-information/physical-interface/name/text()
。从 XPath 列出的选项中选择值。由于该变量列出LOGINT的选择值取决于所选值,因此您可将 LOGINT 的 SELECTIONVALUESXPATH 定义为 PHYINT/device/configuration/interfaces/interface[name='$PHYINT']/unit/name/text()
。这可确保仅列出所选物理接口的逻辑接口。
使用$INTERFACE、$UNIT、配置的价值 XPath、不可见 Params 和选择字段时,CLI Configlet 编辑器中的变量定义应包含.get(0)
以从阵列获取值。例如。 $INTERFACE.get(0)