简化的设备模板

简化的设备模板让用户能够为任何供应商创建具有自定义行为的设备模板,从而满足他们的要求。

低于125485版本

在版本125195中,简化了设备模板,使用户能够创建自定义XML文件。用户还可以从UI添加新的设备模板,支持配置备份、更改检测、配置同步和其他配置任务。但是如果供应商名称和特征名称(设备类型)都已存在于NCM数据库中,则用户可以创建新的设备模板。

高于125485版本

在最新版本的NCM中,用户可以通过全新的XML以新的供应商(或)特征创建新的设备模板,而不受以前版本的任何限制。

设备模板XML格式

以下是使用简化设备模板创建的一些示例XML文件,

  • cisco_ios_router.xml - 包含所有值。
  • microsemi.xml - 只有强制值(SSH/Telnet的备份操作)。

只有最外层的标签是具有4个属性和6个主要子标签的NCM设备模板。

devicetemplate-xml-format

属性

templateName - 强制属性
displayName
osType
description
templateName - 强制属性
displayName
osType
description

子标签

Vendor
Protocols
NCMPersonality
RestTemplate
NCMDeviceSysOIDList
CustDeviceSysOIDList
PromptActionIds

1] 供应商

vendor

除了供应商名称和显示名称外,供应商还有两个主要属性。他们是

1. Show命令
2. 日志级别

Show命令

供应商支持的硬件命令可以在这些标签下提供。它们是可选的,也可以稍后从设置 -> 设备管理 -> Show命令中添加。它只有一个属性“commandstr”,包含硬件命令。

日志级别

此处提到了用于启用更改检测功能的Syslog日志记录级别。它们对所有供应商都是强制性的。用户可以从设备供应商(或者)设备文档中获取支持的日志级别列表及其日志级别编号。它有3个属性,

名称

  • 提供日志记录级别名称。例如:告警、信息、调试等。
  • 这是一个强制性属性,必须从供应商处获取。

编号

  • 提供日志记录级别编号。例如:告警 -> 6。
  • 这是一个强制性属性,必须从供应商处获取。

排序

  • UI中需要显示级别的顺序是基于这个属性的。
  • 如果未提供,则级别将按XML顺序显示。

2.协议

protocols
  • 我们有三种类型的协议,“SSH/TELNET 、SSH/TELNET - TFTP 、SSH - SCP”,它们被称为协议标签属性“名称”的值。
  • 我们有三种类型的操作组“备份与上传、更改检测”,它们被称为操作组标签属性“类型”的值。
  • 对于类型、备份上传的操作组,我们有两个操作,分别为启动和运行。在这种情况下,操作标签属性“名称”的值设置为startup & running。
  • 对于具有更改检测类型的操作组,我们有两个操作,分别为启用和禁用。在这种情况下,操作标签属性“名称”的值设置为enable & disable。
  • 对于其他类型的操作组,我们有两个操作,分别为同步配置和硬件属性。在这种情况下,操作标签的属性“名称”的值设置为hardwareprop或syncconfiguration。

每个操作的命令可以在标签命令中提及,命令执行的属性在属性中提及。以下是属性:

commandstr
保存要执行命令的手动参数。

messagesuffix
可选,而默认值将作为 ${LF} - \n>
可用值为:${LF} - \n , ${CR} - \r , ${CRLF} - \r\n
如果没有提供正确的值,将采用默认值 ${LF}。

prompt
包含关于执行命令后需要的提示的详细信息
强制值。但是,如果它留空,则 ${UserInput:EnablePrompt} 将作为默认值。

sequenceid
表示需要执行命令的顺序
这是可选的。默认情况下,将考虑XML中的表示顺序。

timeout
包含超时时间,以毫秒为单位,命令需要在该秒内完成执行。
这是可选的。默认值为20000。

promptactionid
请参阅此处以了解此参数的含义。

这是可选的。没有默认值。
如果在列表中找不到具有所需值的actionID,则用户可以通过在“PromptActionIds”标签下提供详细信息来创建一个。

readfromrespons
有关其用途的更多信息,请参阅此处。
SSH/Telnet协议的备份命令,该属性的值必须强制设置为true。

promptecho
这是可选的。默认值为true。

commandecho
这是可选的。默认值为false。

delay
这是可选的。默认值为0。

3. NCM性格

这包含了NCM的个性细节。此标签具有2个属性,4个主要的和具有强制性的子标签。

属性:
displayName - 可选。如果没有找到个性,姓名将被视为显示名称,personalityName - 强制性。提供所需的personalityName (设备类型)。

子标签: Login
PersonalityTable
ConfigurationFile
HardwareDetails

登录:包含额外的登录细节,除了用户名和密码,如登录前缀和登录后处理启用命令,如果没有额外的登录细节,可以忽略这个标签,如上所述。

ncm-personality

考虑一个Fortigate设备的登录格式。输入用户名和密码后,系统要求用户按继续。这是通过提供登录后和登录前详细信息来处理的。

登录属性:
enablecommand
如果设备支持启用命令,则包含支持启用命令。

suffix
这是可选的。与其他后缀类似,它也支持${LF}, ${CRLF}, ${CR}。
默认值为${LF}。

postloginprompt
如果设备需要一些额外的交互,在到达提示之前,那么我们收到的提示可以在这里提及。例如,"):"。

postlogincommand
此处提到了为响应附加提示而输入的值。例如,"a"。

preloginprompt
如果设备需要一些额外的交互,在输入用户名和密码之前,我们收到的提示可以在这里提及。例如,"):"。

prelogincommand
此处提到了为响应附加提示而输入的值。 例如,"a"。

PersonalityTable

personality-table

在NCM中,用户可以为每个个性(设备类型)创建一个新表,表名称为个性名称,存储该设备类型的硬件属性。个性表列的详细信息如下,

列标签的属性:
name
提供列的名称。这是一个强制参数。
建议为名称提供与[A-Z_]匹配的所有大写字母。如果名称的格式为[a-zA-Z\s_],那么在内部它们将被转换为所需的格式。不允许使用所有其他格式。

size
表示列可以容纳的最大值。
默认值为100,以防它为空。

displayname
提供显示名称,需要在设备快照 -> 硬件详细信息页面中显示。
如果它们保留为空,则列名将被视为显示名称。

desc
提供该列包含内容的描述。用于创建表格,提供的值不会显示在UI/used。
这是可选的。显示名称被视为默认值。

defaultvalue
列的默认值incase对于特定资源(设备)为空。
这是可选的。“不可用”作为属性的默认值。

sequenceid
应在硬件详细信息页面中显示该列的顺序。
与其他sequenceId类似,默认sequence是基于XML中列的顺序。

ConfigurationFile

configuration-file

标签包含需要从设备备份的配置文件中派生的详细信息。它有1个属性和2个子标签。它是一个可选标签。如果它留空,则文件格式将被视为TEXT,所有其他详细信息将被忽略。

属性
format
表示需要备份的配置文件的格式。
如果它留空,则将考虑默认格式“TEXT”。

子标签
Exclude Lines
SyslogStateCheckers

ExcludeLines
这包含有关哪些行可以从配置文件中排除的详细信息,然后再将它们存储在数据库中,之后备份。

属性和值
type
这是一个强制参数。
我们有3种类型,
1. deleteLine - 排除匹配正则表达式的行。
2. deletePrompt - 如果最后一行有设备提示,则排除最后一行。例如,device@user>。
3. displayFromMatch - 排除与正则表达式匹配的行之后的所有内容。

Regex tag
这是一个强制参数。
提供该行应匹配的正则表达式作为标记操作的值。
提供应应用排除的操作。我们有备份和上传2个操作。
如果它留空,则默认备份操作将被排除在外。
如果要应用该正则表达式进行上传,则将操作指定为上传。

SyslogStateCheckers
这些包含有关何时应将系统日志更改检测状态设置为启用或禁用的详细信息。

属性和值

state
这是一个强制性的属性
该值可以设置为启用(或)禁用。如果它保留为空或其他一些意外值,则将设置默认值启用。如果该值设置为,

  • 启用 - 如果正则表达式与配置文件中的任何行匹配,则更改检测状态将被标记为启用。
  • disable - 如果正则表达式与配置文件中的任何行匹配,则更改检测状态将被标记为禁用。

Regex Tag
这是一个强制属性。
提供配置文件中需要匹配的正则表达式作为标签的值来更新状态。注意:如果我们有3组正则表达式都标有状态启用,那么文件必须通过所有正则表达式,才能获得启用状态。即使其中一个正则表达式失败,状态也会在UI中标记为禁用。

HardwareDetails:

hardware-details

包含处理硬件信息所需的详细信息。它有两个主要的子标签,
HardwareParser
Protocols

HardwareParser :

包含解析器详细信息和解析器文件名。它只有一个属性,
parserFileName
这是一个强制参数。

提供解析器文件名称。
还根据需要提供解析器文件内容。

Protocols:这里提到了用于获取硬件属性的硬件命令详细信息。

  • 协议下的协议标签具有保存协议名称的属性"name"。如果没有为该属性提供值,则同时考虑SSH和Telnet协议。
  • 协议下的命令标签有一个名为“操作”的参数,它有3个接受值,
    enterAdvancedMode
    • 在某些情况下,可能需要以不同的模式执行硬件命令。在这种情况下,在标签下提供了进入另一种模式的命令,其操作被称为"enterAdvancedMode"。
    • 命令标签与设备模板协议中的命令标签相同,但是少了两个属性,分别是readfromresponse和delay。
    exitAdvancedMode
    • 在高级模式下执行硬件命令后,需要退出该模式,并在此操作下提供从另一个高级模式中退出的命令。如果提供了enterAdvancedMode操作的详细信息,则它是强制性的。
    • 命令标签与设备模板协议中的命令标签相同,但是少了两个属性,分别是readfromresponse和delay。
    fetchHardwareData
    • 此标签下提供了硬件命令。
    • 如果操作属性为空,则在默认情况下,操作将被设置为fetchHardwareData。
    • 命令标签与其他操作(进入和退出高级模式)的命令标签相同,但有两个附加参数。

      parsercommandname

      • 提供包含一组正则表达式的命令名称,这些正则表达式用于从命令输出中获取硬件详细信息。命令名称可在xml解析器文件中找到。

      responseparserid

      • 它是一个用于将hardwareParser xml文件映射到interactionSpec的uniqueID,在该interactionSpec上执行命令。
      • 可以提供任何随机的唯一值。
      • Default value is "<personalityName>_cli_hardware_prop_parser"

4. RestTemplate

rest-template

如果新模板需要与REST凭证相关联,则应为属性“模板名称”提供已定义REST API备份的基本设备模板名称。它是一个可选的主要子标签。

5. NCMDeviceSysOIDList

CustDeviceSysOIDList

它拥有四个属性,分别为,
model
ostype
series
SysOID - 这是一个强制属性。

6. CustDeviceSysOIDList

rest-template

与NCMDeviceSysOIDList属性相同,其中SysOID为必填项。

7] PromptActionIds

PromptActionIds

有关什么是提示操作ID的更多详细信息,请参阅此处。如果现有列表不满足要求,我们可以创建一个新的promptAction。

这里有四种属性,

  • name
    • 提供actionID的名称。
    • 强制属性。
  • prompt
    • 强制属性。
    • 提供需要处理的提示。
  • command
    • 强制属性。
    • 提供检测到特定提示时需要执行的命令。
    • suffix
      • 与其他后缀属性类似,它是可选的并支持${LF},${CR},${CRLF}。
      • 默认值为${LF}。