|
目录
我们经常需要对正在运行中的设备执行配置变更,有时也会需要将同一变更应用到多个设备。虽然网络管理员手动编辑即可很好的完成这些配置,但处理大量的变更和进行重复性的工作是一项艰巨的任务。鉴于此,DeviceExpert提供了一种简单的解决方案——“配置模板”、“脚本”和“高级脚本”。
模板有助于自动执行那个重复性和耗时大的配置任务。你所需要做的只是创建一个包含请求命令的小模板,并多次在多个设备上重复执行它而已。
模板同样可以按照计划为在未来的某时间执行。这有助于在无管理员参与的情况下执行任务。
在一次执行多个设备的部分配置变更时,模板也很有用。
模板使得网络管理员可以一次将变更应用到多个设备中。同样,模板为执行精确变更提供了帮助。
顾名思义,自定义模板就是指可以由记录中的用户根据需求自己定义并创建的那些模板。自定义模板包含(由用户提供)的要在设备上执行的命令,可以被创建来配置设备的任何特性,举例而言,你可以在cicso路由器上创建模板来配置IGRP。自定义模板可以在多个设备的大批配置更新任务中重复使用,举例而言,一个模板可以被多次用来修改多个设备上的密码、一个固件更新的模板可以在多个设备中多次使用。
“模板变量”被定义来增强一个模板的可重用性。模板变量是一个值的占位符,可以指定模板在何时上传到设备上去。创建一个模板后,当你想要上传一个特定设备或一些设备的变更时,只需提供模板变量的值。其他一切均可由DeviceExpert自动提供。
注意:创建“模板变量”是可选的,如果你想要增强模板的可重用性,可以选择创建它。
由DeviceExpert提供的自定义模板有两种类型:
1. 文件传输模式——用来通过TFTP上传对设备的部分配置变更。
2. 脚本执行模式——命令在CLI控制台中被一个接一个的执行。脚本执行被分为如下两种类型:
下表提供了每种类型的自定义模板及何时使用的信息:
|
文件传输模式 |
简单脚本执行 |
高级脚本执行 |
|
用来通过TFTP上传对设备的部分配置变更。 例如:
在以上所有情况下,配置上传的文件传输模式可以被使用。一般来说,要对现有的配置执行变更,可以使用这种模式。 其他类似于要在设备上执行命令的情况下,可以使用脚本执行。
|
用来在CLI控制台上执行一个单独的命令。 例如:同步运行和启动配置。通过一个单独的脚本命令行copy running-config startup-config即可,你可以通过该命令同步任意数量的设备的启动和运行配置。
其他例子:
|
以下情况下,可以使用高级脚本执行:要在命令行中执行一个设备上的一系列相互联系的命令,其中一个命令执行后,下一个命令执行前,需要提供一些输入。 若一个命令的执行会改变设备的提示内容,或者耗时巨大,或者要求通过细粒度的控制来跟踪流量, 也可使用高级脚本执行。 例如:要想将你当前的网际操作系统镜像备份到一个TFTP服务器上,需要完成下面的步骤:
以上命令行执行步骤可转为一个高级脚本,如下:(欲知高级脚本详情,请看此处) <command prompt=']?'>copy flash:/%SOURCE_FILE_NAME% tftp</command> <command prompt=']?'>%TFTP_SERVER_IP%</command> <command timeout='70'>%DESTINATION_FILE_NAME%</command>
其他例子:
|
1. 点击“管理”>>“设备管理”>>“自定义模板”,之后,点击“新建模板”;
2. 在打开的界面里,在“名称”文本字段中,为模板提供一个名称。在“描述”文本字段中,记述新模板的信息(以便将来参考)。
3. 选择你想要将配置上传到设备上的模式。有三种模式可供选择:文件传输模式、简单脚本执行模式以及高级脚本执行模式。在文件传输模式下,传送会通过文件传输协议来传送。在简单脚本执行模式下,输入的命令会以脚本方式执行,你可以查看执行的输出,也可将输出生成为PDF格式。当进行一般配置的更新时,若文件通过文件传输协议的传输受限,脚本执行更有效,这种情况下,可以在特权模式下执行脚本,例如:配置终端模式。“高级脚本执行模式”同样很有效,因为它在命令行中提供了执行一系列设备内部相互联系的命令的选项(见:创建高级脚本 )。
4. 在“模板内容”文本字段中,输入准备上传到设备中的配置命令。当输入配置命令时,使用%<variable_name>% 来创建一个模板变量,例如:snmp-server community %COMMUNITY% RO。
5. 当设备被上传到模板中时,“模板变量”的值可以被指定。
6. 点击“保存”,新模板被添加到模板列表中。
如上所述,“高级脚本执行模式”非常有用,因为它在设备命令行中提供了执行一系列内部相互联系的命令的选项。要启用此项,要执行的命令需要被以如下指定格式输入:
| 目的 |
句法 |
| 在命令行中输入要执行的命令 |
<command>xyz</command>
例如: <command>copy startup-config tftp</command> |
|
指定执行一条命令后的提示 这可被用在固件升级、操作系统镜像备份等脚本中。 |
<command prompt=']?'>xyz</command> 例如: <command prompt=']?'>copy startup-config tftp</command> (这里,单引号中的提示符“?”及闭方括号被作为提示符。) 注意: 如果没有提供提示符,这会使用缺省的提示符。 |
|
执行完一条命令后,如果希望应用程序等待几秒,你可以指定一个时间来限制秒数。 这可被用在固件升级、操作系统镜像备份等脚本中。 |
<command timeout='70'>copy
startup-config tftp</command> 例如: <command timeout='70'>copy startup-config tftp</command> 注意: 缺省超时时间是30秒。 |
|
执行了一条命令,且提供了相应查询的回复后,之后,如果设备不期望用户点“回车键”,可使用本句法。 <>例如:当设备期待一个“Y”或“N”的回复,而非“回车键”,可使用本句法。 这可被用在固件升级、操作系统镜像备份等脚本中。 |
<command suffix='$NO_ENTER'>y</command> 注意: suffix的缺省值是"ENTER", 即:换行。 |
|
指定执行一条命令后的提示 这可被用在固件升级、操作系统镜像备份等脚本中。 |
<command prompt='confirm'>xyz</command> 例如:<command prompt='confirm'>%DESTINATION_FILE_NAME%</command>
|
|
<>当执行完一条命令后,命令序列不希望回复时,本句法可被使用,它需要伴随一个超时值一起使用,以便在两条命令之间等待一些时间。 这可被用来设置Cisco设备中的banner消息。 |
<command prompt='$NO_RESPONSE' timeout='5'>banner
%DELIMITING_CHAR%</command> 例如:<command prompt='$NO_RESPONSE' timeout='5'>banner %DELIMITING_CHAR%</command> |
被多个不同用户创建的所有模板均会被列在“自定义模板”页面中(“管理”>>“设备管理”>>“自定义模板”)。同样出现在页面中的还有诸如谁创建了模板、描述和最后修改的时间戳等其他信息。
如果你选择的执行模式是文件传输模式,你会看到“动作”栏下的“上传”链接。如果执行模式是“简单脚本执行”或“高级脚本执行”,你会看到“执行”链接。
点击“管理”>>“设备管理”>>“自定义模板”,之后,点击相应模板的“动作”栏旁边的“上传”链接。
在打开的界面中,如果已有变量在模板中被创建/定义,你会看到“模板变量”列表。为各自的模板变量输入一个需要的值。例如:可以为'%COMMUNITY%'提供一个为public的值。输入值后,就可以预览到带有全部配置命令和community变量值的实际配置。要预览该配置,请点击“预览”。
要想仅将变更应用到指定的设备中,点击“选择指定设备”按钮,设备同样被列在一个框里,你可以从中选择任意数量的设备。【要在一组设备上应用变更,点击“选择设备组”。你可以从下拉框中选择需要的组。如果你选择了本选项,模板会被上传到选定组中的所有设备中。】
缺省情况下,在执行自定义模板前后,DeviceExpert会触发配置备份。你可以在需要的基础上,选择启用/禁用配置备份。在特定情况下,例如固件升级,执行命令后,设备会短暂断网,在这种情况下,DeviceExpert不能触发配置备份,自定义模板执行也会失败,要避免这种情况,你可以在创建自定义模板时选择禁用设备配置备份。
点击“上传”(在文件传输模式下)/“执行”(在脚本执行/高级脚本执行模式下),模板中定义的配置会被上传到选定的设备中。
| 注意: (1) 简单脚本执行模式不支持带'SNMP-TFTP'协议的设备 (2) 自定义模板的执行输出仅对执行该模板的用户可见。这是说,拥有“操作员”角色的用户可以查看自己执行的自定义模板的输出结果,而不能查看其他用户的。管理员可以查看所有模板的执行输出,并可以删除这些输出。 |
自定义模板的简单脚本执行可以被证明是一个可用于多种设备的多种操作的强大工具。以下为其中几种实际应用:
使用简单脚本执行,你仅需一步,即可为多个设备更换密码。以下是可以用作此目的的典型模板的内容:
configure terminal
enable password xxxx
exit
你可以多种不同的命令以从一个单独或多个设备获取硬件信息,例如:仅需如下脚本命令,即可一步获得多个设备的 'show version' :
show version
如果你想更新NTP服务的详情,你所需要做的就是创建一个如下的模板:
configure terminal
ntp server x.x.x.x
exit
同步运行&启动配置
仅需通过一行脚本,你即可同步任意数量设备的配置的运行和启动:
copy running-config startup-config
或
copy startup-config running-config
以上仅仅是一个说明怎样使用脚本的指示列表,你可以用它来完成很多其他的应用,在我们的网站中还有几个可用的例子,请参考一下。
上传操作系统镜像
上传操作系统镜像/固件是管理员最常见的操作执行之一,高级脚本执行可以用来上传镜像,镜像文件可以通过TFTP来传送。
以下为上传操作系统镜像/固件的命令执行步骤:
以上命令执行步骤可以被转化为如下的高级脚本:
<command prompt=']?'>copy tftp: flash:</command>
<command prompt=']?'>%TFTP_SERVER_IP%</command>
<command prompt=']?'>%SOURCE_FILE_NAME%</command>
<command prompt='confirm'>%DESTINATION_FILE_NAME%</command>
<command timeout='120' suffix='$NO_ENTER'>y</command>
在以上例子中,占位符被用作源文件名、TFTP服务器IP和目的文件名,在执行高级脚本命令时,需要提供这些占位符的值。脚本可以被一步应用到很多设备中。
要备份你的当前网际操作系统的镜像至TFTP服务器,可用以下步骤:
使用命令 copy flash <filename> tftp
<filename> - 你当前网际操作系统镜像的名称
指定的TFTP服务器的IP
指定文件的拷贝目的地
以上命令执行的步骤可以被转化为以下高级脚本:
<command prompt=']?'>copy flash:/%SOURCE_FILE_NAME% tftp</command>
<command prompt=']?'>%TFTP_SERVER_IP%</command>
<command timeout='70'>%DESTINATION_FILE_NAME%</command>
在以上例子中,占位符代替源文件名、TFTP服务器IP和目的文件名,在执行高级脚本命令时,需要提供这些占位符的值。脚本可以被一步应用到很多设备中。
一般来说,需要的banner消息被与两个分隔符一起输入。例如:与# 和 # ,两个符号之间的所有内容都会被显示为banner消息。分隔符不是banner消息的一部分。
要配置banner消息,可用以下步骤:
进入配置终端模式
提供配置banner消息命令
提供分隔符
提供banner消息
再次通过分隔符指定消息的末端
以上命令执行的步骤可以被转化为以下高级脚本:
<command>conf t</command>
<command prompt='$NO_RESPONSE' timeout='5'>banner %DELIMITING_CHAR%</command>
<command prompt='$NO_RESPONSE' timeout='5'>%BANNER_LINE_1%</command>
<command prompt='$NO_RESPONSE' timeout='5'>%BANNER_LINE_2%</command>
<command>%DELIMITING_CHAR%</command>
<command>end</command>
在以上例子中,占位符代替分隔符和banner消息,在执行高级脚本命令时,需要提供这些占位符的值。脚本可以被一步应用到很多设备中。
要重置HP ProCurve设备的密码,可用以下步骤:
进入配置终端模式
提供重置密码的命令
输入新密码
确认新密码
以上命令执行的步骤可以被转化为以下高级脚本:
<command>conf t</command>
<command prompt='$NO_RESPONSE' timeout='5'>password manager</command>
<command prompt='$NO_RESPONSE' timeout='5'>%PASSWORD%</command>
<command prompt='$NO_RESPONSE' timeout='5'>%PASSWORD%</command>
<command>end</command>
在以上例子中,占位符代替输入和确认新密码,在执行高级脚本命令时,需要提供这些占位符的值。脚本可以被一步应用到很多设备中。
要从闪存中删除文件,可用以下步骤:
使用命令delete flash <filename>
<filename> - 准备删除的文件的名称
本步会自动探查对删除的确认,确认标志是输入的<filename>
确认之后不应该跟随“回车键”
以上命令执行的步骤可以被转化为以下高级脚本:
<command prompt=']?'>delete flash:/%FILE_NAME%</command>
<command prompt='confirm'>%FILE_NAME%</command>
<command suffix='$NO_ENTER'>y</command>
在以上例子中,占位符代替被删除的文件名,在执行高级脚本命令时,需要提供这些占位符的值。脚本可以被一步应用到很多设备中。
全部的三种自定义模板方式——文件传输模式、简单脚本执行模式和高级脚本执行模式,均可按计划在未来某一时间执行,详情请参考计划部分 。
如果你想查看你一个已创建的模板的内容或编辑该模板:
点击 "管理" >> "设备管理" >> "自定义模板" ,之后点击要查看的自定义模板的名称
在打开的界面里,点击“编辑模板”,执行需要的变更,点击“更新”。
点击 "管理" >> "设备管理" >> "自定义模板" ,选择要删除的模板。
点击“删除模板”,该模板就会被永久删除。
|