通过Commander批量配置设备
背景信息
制作命令行脚本有以下两种方式:
在线制作命令行脚本:使用batch-cmd begin命令开始在线编辑命令行脚本。命令录入完成后,使用系统快捷键Ctrl+C退出编辑。退出编辑以后,如果再次执行此命令开始在线编辑命令行脚本,原有已录入的命令行将被清除。
在线制作的命令行脚本保存在Commander的内存中,如果Commander重启,在线录入的命令行将清除。
- 离线制作命令行脚本:将需要配置的命令行逐条写入批处理文件。批处理文件可以由文本文档进行编辑,每一条需执行的命令占据一行。脚本名称可以为“*.txt”或者“*.bat”。
从用户视图开始,依次执行脚本命令。由于命令行执行的结果保存在Client的内存中,所以命令行脚本中如果有清除Client内存的命令行,如reboot等,则命令下发后无法通过display easy-operation batch-cmd result查看批量配置的执行结果。
前置任务
配置通过Commander实现批量配置设备功能之前,需完成以下任务:
- Commander和Client之间路由可达。
- 确保已配置Commander基本功能。
- 确保已将有配置设备加入Commander管理。
确保Client处于正常运行状态。
为了增强Commander和Client之间通信的安全性,防止有仿冒的Commander获取Client的控制权,可以分别在Commander和Client的系统视图下通过easy-operation shared-key命令配置相同的共享密钥。
操作步骤
- 如果要下发命令行到Group,先创建Group
执行命令system-view,进入系统视图。
执行命令easy-operation,进入Easy-Operation视图。
配置Group的匹配规则
配置内置Group的匹配规则
执行命令group build-in device-type,创建内置Group,通过device-type指定匹配的设备类型,并进入内置Group视图。
- 配置自定义Group的匹配规则
执行命令group custom { mac-address | esn | ip-address | model | device-type } group-name,创建自定义Group,并进入自定义Group视图。
执行命令match { mac-address mac-address [ mac-mask | mac-mask-length ] | esn esn | ip-address ip-address [ ip-mask | ip-mask-length ] | model model | device-type device-type },配置自定义Group的匹配规则。
- 制作命令行脚本
在线制作命令行脚本
执行命令system-view,进入系统视图。
执行命令easy-operation,进入Easy-Operation视图。
执行命令batch-cmd begin,进入命令行脚本编辑模式。
- 同一时间,只允许一名网络管理员在线编辑命令行脚本。
命令行脚本编辑模式下,30秒未操作则自动退出编辑模式返回到Easy-Operation视图,脚本中保留已经编辑完成的命令行。
编辑命令行脚本。
输入单条命令的最大长度为510个字符,包括使用不完整格式的情况。超过510个字符将无法输入。
脚本的命令行数量最大为200条。
录入命令时,按回车键确认输入。确认输入后,光标不能回退,即不能修改已确认输入的命令行。
使用快捷键Ctrl+C退出命令行脚本编辑模式。
离线制作命令行脚本
离线制作格式为“*.txt”或“*.bat”的命令脚本文件,然后将脚本文件上传至Commander的根目录下保存。离线命令行脚本中内容的格式要求与制作在线命令行脚本一致。
- 命令行脚本中不支持中文字符。
- 离线制作的命令行脚本中,建议不要包含密码类的信息,否则安全得不到保证。
- 如果需要配置的命令比较多,建议使用离线制作命令行脚本的方式。如果一定要采用在线制作的方式,请保证输入的正确性,因为在线输入后,不能修改,不能查看,所以一旦输入错误,只能退出并再次进入编辑模式从第一条命令开始重新输入。
- 下发命令行,根据不同的应用场景选择
- 下发命令行到指定的Client,执行命令execute [ script-file ] to client { client-id1 [ to client-id2 ] }&<1–10>。
- 下发命令行到所有Client,执行命令execute [ script-file ] to client all。
- 下发命令行到指定的Group,执行命令execute [ script-file ] to group { name group-name }&<1–10>。
- 下发命令行到所有Group,执行命令execute [ script-file ] to group all。
如果未指定script-file,则代表下发在线制作的命令行脚本;如果指定script-file,则代表下发指定的离线制作的命令行脚本。