附录 A:管理配置模板

本附录包含以下部分:

管理配置模板

当有多个设备具有非常相似的配置要求时,可以使用配置模板,其中包含少量参数,而每个设备需要不同的参数。例如,网络可以为所有交换机使用相同的配置,只是每台交换机都有唯一的主机名和管理 IP 地址。配置模板允许您有一个包含所有公共配置的配置文件,并用占位符表示需要具有唯一性的配置元素。

配置模板包含两个部分 – 配置本身,以及元数据,该元数据控制在创建设备记录时如何在用户界面中显示占位符。以下部分将详细介绍这些内容。

配置语法

配置模板的配置部分是文本文档,与常规设备配置非常相似。在创建配置模板时,建议的方法是从已配置有模板应启用的功能和设置的示例设备获取的配置备份开始。配置模板与设备配置的不同之处在于,设备特定的参数(例如主机名)将替换为占位符。

创建新设备记录时,系统将显示一个表单,允许您为配置模板中的每个占位符提供正确的值。这些值将与配置模板合并,以生成发送到设备的实际配置。



在将配置发送到设备时,占位符值将与配置模板合并。这意味着,如果在设备连接到 Manager 之前更改了任何系统变量,则最终的设备配置可能与预览中所示的配置有所不同。


配置将创建为 Mustache 模板 https://mustache.github.io/。Mustache 允许使用各种占位符(在 Mustache 文档中称为标签),包括:

  • 简单变量,其中占位符将替换为设备记录中指定的值。简单变量的形式为 {{name}}

  • 代码块,即用占位符包围的整块配置,也可以选择包括其他占位符。代码块的内容可以从最终配置中排除,也可以包含在最终配置中一次,或重复多次。

    此类占位符的行为由模板中的元数据和用户在创建设备记录时提供的值定义。

    代码块的形式为 {{#name}}…{{/name}},其中第一个标签标记代码块的开始,第二个标签标记代码块的结束。

  • 注释可用于记录配置模板。注释的形式为 {{!这是注释 }}。

以下是简单模板的示例:

!
hostname {{hostname}}
!
{{! Insert a list of VLANs}}
{{#vlans}}
interface vlan {{vlan-id}}
 name {{vlan-name}}
!
{{/vlans}}

在本示例中,有几个不同的占位符:

  • {{hostname}} 是一个简单变量。它将替换成设备记录中为主机名设置的值。

  • 在主机名配置之后放置注释。注释不会包含在发送给设备的配置中。

  • {{#vlans}}…{{/vlans}} 是本示例中用于保存各个 VLAN 的列表的代码块。对于设备记录中定义的每个 VLAN,将在设备配置中创建此容器内容的副本。

  • {{vlan-id}}{{vlan-name}} 都是简单变量,但它们包含在 {{#vlans}} 列表中。创建设备记录时,您可以为{{vlan-id}}{{vlan-name}} 指定多个值,用于生成创建每个 VLAN 所需的配置。

有关 Mustache 语法的更多详细信息,请参阅 Mustache 手册页面,网址为 https://mustache.github.io/mustache.5.html

模板元数据

每个配置模板均包含元数据,描述在创建设备记录时应如何向用户呈现每个占位符。使用模板编辑器创建模板时会生成这种元数据。

在您创建或编辑配置模板时,系统将显示模板编辑器,其中左侧显示配置本身,右侧显示一个表单,可用于为每个占位符设置元数据。

配置中的每个占位符以及以下控件均显示在右侧:

  • 必填复选框。此控件用于确定用户是否必须为此占位符提供值。

  • 类型下拉列表。通过此列表,可以选择占位符的类型,这将控制如何向用户显示占位符。

  • 标题。这可用于为 GUI 上的参数提供更易理解的名称。如果没有为占位符指定标题,则显示占位符本身。

  • 编辑图标。某些类型有更多可用于控制显示的设置。例如,可以将字符串占位符进一步细化为 IP 地址或 URL,如果输入的文本格式不正确,则输入表单将显示错误。还可以根据系统信息而不是用户输入来设置某些类型。有关详细信息,请参阅下面的“系统和动态变量”。

  • 上移/下移控件。利用这些箭头可以更改向用户显示占位符的顺序。占位符可根据对用户最有意义的方式(而非它们在配置中出现的顺序)进行分组。

模板编辑器还提供预览功能,可用于提供示例,说明创建和编辑设备记录时如何向用户显示占位符表单。

占位符类型

可用的占位符类型如下:

  • 字符串 - 此类占位符将在 GUI 中显示为简单的文本输入框。

  • 整数 - 整数显示为带有控件的文本输入框,其中控件用于增加或减少所显示数字的值。在此字段中只能输入数字。

  • 布尔值 - 布尔值占位符在 GUI 中显示为复选框。如果选中此复选框,则会将占位符设置为字符串值“true”。如果未选中此复选框,则值为“false”。代码块也可以指定为布尔值,在这种情况下,仅当选中代码块的复选框时,才会包含代码块中所含的配置。

  • 容器 - 容器类型可用于对表单中的其他占位符进行分组。

  • 列表 - 列表是配置的容器或代码块,可在生成的配置文件中重复多次。当为列表中的占位符生成表单元素时,会添加其他控件用以添加或删除列表中的元素。

除了上面列出的简单类型之外,还可以通过点击编辑图标进一步细化字符串变量。可用的选项包括:

  • 为占位符指定默认值。

  • 为字符串占位符设置最小和/或最大长度。

  • 指定可以选择的预定义选项列表(使用“枚举”选项)。

  • 将字符串的格式限制为主机名、URI、IPv4 地址或 IPv6 地址之一。如果可能要输入大量内容,也可以将字符串指定为文本区域。

系统和动态变量

占位符不仅可以从用户输入中获取值,还可以从系统中定义的参数中获取值。系统变量是为 Manager 本身定义的参数,例如 Manager IP 地址。

通过设置占位符以从系统变量中获取值,Manager 可将该值插入到配置中,无需任何用户干预。一些更复杂的部署可能需要用户输入才能使系统变量正常工作。有关更多详细信息,请参阅管理平台设置

动态变量与系统变量相似,但动态变量是基于登录用户或设备所属设备组之类的信息动态生成的值。系统和动态变量用于允许模板在设备和系统之间更具可移植性。

创建配置模板

推荐的创建配置模板方法是,首先使用所需的设置配置适当类型的网络设备,然后备份设备配置,并将其上传到 Manager 以用作起点。

或者,可使用“另存为”功能创建现有模板的副本。无论采用哪种方式,从现有配置起,可帮助您减少创建模板所花费的时间,并且还可以减少实现所需结果所需的修订次数。

创建新模板时,需要指定模板所属的组织以及模板可以使用的产品 ID (PID)。产品 ID 可以包含 *'s?'s 作为通配符。

完成启动配置的创建后,可使用以下过程对其进行更新:

  1. 导航到 Network Plug and Play > 配置

  2. 选择配置并点击编辑图标,可在模板编辑器中打开启动配置。

    系统将显示模板编辑器,并在文本编辑器窗口的左侧显示初始配置文件。文本编辑器支持许多常见的编辑功能,包括搜索、替换和多个光标操作键序列。有关命令列表,请参阅下表。

  3. 根据配置语法中的说明,通过插入占位符来修改配置。每次插入新占位符时,都会在右侧表单中添加对应的条目。

  4. 使用右侧的表单修改与每个占位符相关联的元数据,以确保占位符以最适当的方式呈现给用户。有关指定元数据的更多详细信息,请参阅上面的管理配置模板。您可以使用“预览”功能,查看创建设备记录时表单将如何呈现给用户。

  5. 重复步骤 3 和 4,直到为所有应在设备之间有所不同的配置参数创建占位符。

  6. 完成模板并且觉得满意后,点击保存



每次保存模板时,都会创建新版本的模板。模板的较旧版本将保留在 Manager 中,除非您显式删除这些模板。将模板分配给设备后,将分配模板的特定版本(默认情况下为最新版本)。创建新版本时,现有设备将继续使用在创建时分配的版本。当前分配给设备的模板版本可能不会被删除。


表 1. 常用编辑器命令

功能

说明

键绑定

PC

Mac

全选

选择编辑器的全部内容。

Ctrl-A

Cmd-A

Kill Line

删除光标之后的行部分。如果仅包含空格,则该行末尾的换行符也会被删除。

Ctrl-K

删除行

删除光标下的整行,包括末尾的换行符。

Ctrl-D

Cmd-D

撤消

撤消上次更改。

Ctrl-Z

Cmd-Z

恢复

恢复上次撤消的更改。

Ctrl-Y

Shift-Cmd-Z

Cmd-Y

Go Doc Start

将光标移到文档开头。

Ctrl-Home

Cmd-Up

Cmd-Home

Go Doc End

将光标移到文档末尾。

Ctrl-End

Cmd-End

Cmd-Down

Go 行开始

将光标移到行首。

Alt-Left

Ctrl-A

Go Line End

将光标移到行尾。

Alt-Right

Ctrl-E

更多缩进

缩进当前行或选定内容。

Ctrl-]

Cmd-]

减少缩进

减少缩进当前行或选定内容。

Ctrl-[

Cmd-[

查找

Ctrl-F

Cmd-F

查找下一个

Ctrl-G

Cmd-G

查找上一个

Shift-Ctrl-G

Shift-Cmd-G

更换

Shift-Ctrl-F

Cmd-Alt-F

全部替换

Shift-Ctrl-R

Shift-Cmd-Alt-F