当需要配置的网络设备很多的时候,不可能都通过手动去配置。此时则需要利用脚本来批量生成配置。从而既保证了配置的准确性,也提高了配置的效率。
可以利用python的xrld库来读取execl表格,利用String库的Template模板来配合批量生成配置。
Template模板替换:
主要利用Template的substitute(config)方法进行替换。
substitute
(mapping[, kws])
执行模板替换,返回一个新字符串。映射是任何类似于字典的对象,其键与模板中的占位符匹配。或者,可以提供关键字参数,其中关键字是占位符。当映射和kws都给定且存在重复时,kws中的占位符优先。
safe_substitute
(mapping[, kws])
与substitute()类似,但如果映射和kws中缺少占位符,则不会引发KeyError异常,而原始占位符将完整地出现在结果字符串中。而且,与substitute()不同的是,\$的任何其他外观都将简单地返回\$,而不是引发ValueError。
当其他异常仍然可能发生时,这个方法被称为“安全”,因为它总是试图返回一个可用的字符串,而不是引发异常。在另一种意义上,safe_substitute()可能不是安全的,因为它将无声地忽略包含悬空的畸形模板
substitute()和safe_substitute()的主要区别:
substitute():
在没有匹配成功的参数是会引发异常。
safe_substitute()
在没有匹配的时候会返回$,不会引发异常。
使用示例:
1 | from string import Template |
示例程序:
1 | # -*- coding: utf-8 -*- |
程序执行结果:
1 | 2019-12-04 21:45:58 |
xlrd库读取Execl表格:
利用如下简单操作,基本可以利用循环读取所需数据。
1 | # -*- coding: utf-8 -*- |
xlwt库写入Execl表格:
参考自:https://www.cnblogs.com/python-robot/p/9958352.html
1 | # -*- coding: utf-8 -*- |
批量生成CRT或者Xshell会话(Session)文件:
当需要管理的设备很多的时候,如果一个个网CRT或者Xshell中添加的话,很费时间。所以可以利用小程序批量生成session文件,在生成中,可以将账号,密码也填进去,从而生成的session登录设备的时候不需要输入用户名,密码。
注意:该程序中调用的session模板,需要从CRT或者Xshell的会话路径中复制一个.ini或者.xsh文件,主要改变三行:
1
2
3
4
5
6
7
8
9
10 > CRT .ini文件中需要改变
> S:"Username"=$USERNAME
> S:"Password V2"=$PASSWORD
> S:"Hostname"=$DEV_IP
>
> Xshell .xsh文件需要改变
> UserName=$USERNAME
> Password=$PASSWORD
> Host=$DEV_IP
>
替换示例小程序:
1 | # -*- coding: utf-8 -*- |
通过上面的程序会生成衣设备名为文件名的.ini 或者.xsh文件。将这些文件复制到CRT的默认会话管理文件夹或者Xshell默认的会话管理路径。从新打开软件即可。从而可以利用软件的会话管理器,输入关键字进行搜索指定会话。快速定位需要管理的设备。
crt_tmp.ini模板文件示例:
1 | S:"Username"=$USERNAME |
xshell_tmp.xsh模板文件示例:
1 | [CONNECTION:PROXY] |
参考文档:
https://github.com/python-excel/xlwt
https://docs.python.org/2/library/string.html#template-strings