前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当年要是会这手脚本生成,HSRP改VRRP的操作何至于那么痛苦?

当年要是会这手脚本生成,HSRP改VRRP的操作何至于那么痛苦?

作者头像
释然
发布2020-12-08 14:57:15
1K0
发布2020-12-08 14:57:15
举报
文章被收录于专栏:释然IT杂谈释然IT杂谈

当时我要是能想到这个技术,100多个VLAN的HSRP改VRRP脚本也就不至于搞得那么痛苦了。当时一个VLAN一个VLAN的改,不仅是费时费力,而且还让同事帮忙核对了两遍。就这样,拿到现场去实施的时候,还是发现有十几个VLAN在做HSRP改VRRP的时候出现了错误。结果是搞得头晕眼花想呕吐,脚本排版也不漂亮,还在客户那里留了个做事不细致的坏印象。

咱就来看一下吧,Cisco设备上一共100多个VLAN,全部配置的是HSRP,现在把HSRP的配置命令全部去掉,改成VRRP的配置不仅要保证H改V以后,Active是Master,Standby是Slave,同时要保留这些VLAN下的描述信息,netFlow信息,ACL调用信息和OSPF参数信息。

1

先看一下原始配置脚本

原始脚本里面提供4个VLAN的配置,可以看见这4个VLAN下的配置也是参差不齐,针对HSRP的配置也是各式各异,如果用手敲来进行替换,要么就是不美观。如果要美化这个脚本的话,手一残还容易搞错啊!

如果要做HSRP改VRRP,那我们需要做哪些调整呢:

配置需要改变的点:

HSRP改VRRP,首先“standby”关键字要改为“vrrp”,但是配置的格式不变。这些需要更改的配置必须体现在脚本内。

配置不变的点:

也就是原配置中,与描述(description),接口地址配置(ip address),ACL调用(ip access-group),NetFlow(ip flow ingress)等配置无需改变。这些配置既然无需改变,就不要写在脚本里面了,否则真的很难看,而且还容易手残给把不该改的地方改了!当然,如果不借助工具,直接删这些配置,那也容易……手残搞错

废话不多说了,现在我们就在做一个漂亮美观,无多余配置,而且100%不出错的HSRP改VRRP的配置脚本。我们需要的工具是Word、Excel、Notepad++三个工具。

2

提取关键信息

这一步骤的操作是,去除掉无需修改的配置,也就是把接口地址配置,ACL调用,描述,等信息全部去掉。

先把原始配置全部复制到Word文档中,在Word中按Ctrl+A全选文本。

再点“表格”,使用“文本转换为表格”,把这些配置命令都转换为一列多行的表格,每一条命令占用一行。

现在要做的就是处理表格,把表格全部复制到一个Excel中,注意,复制到Excel时要把第一行给空出来。因为第一行要做成筛选功能行。

筛选功能开启以后,先筛选出所有以“description”开头的内容,找到以后全部删除。

然后,点击A1单元格的筛选按钮,选择“从xxx中清除筛选”。再接着按照刚才的步骤筛选并删除掉“!”,“ip access-group”,“ip flow”,“ip address”等关键字。直到筛选按钮按出来,只剩下“interface vlan”和“standby”开头的关键字。

3

生成配置脚本

把在Excel里面生成的配置,再全部复制出来到Word里面。为了防止Excel往Word里面粘贴时仍然是以表格的形式粘贴,可以考虑先把从Excel复制出来的内容,先粘贴到一个txt文件里,把格式清楚,只保留纯文本,再粘贴到Word里面。

然后,把这些命令的换行符全部取消掉。操作方式是在Word里面按Ctrl+H调出替换对话窗口,把换行符“^p”去掉:

现在是不是感觉命令行全“乱套”了?别慌,乱就对了。现在我们就可以让Word暂时退出我们的历史舞台了。

把Word里面这堆乱七八糟的命令,复制到Notepad++的新建文档中,重新规划它的格式。因为在Cisco网络设备的命令行中,是先interface vlanxx,再进行standby这些配置的吧。所以,我们就在Notepad++中,设置文本针对每个“interface”关键字设置换行:

OK,现在就可以把这个整齐的文本保存成“hsrp.txt”了。注意后面没有“standby”关键字的行,这些行都是没有HSRP配置的,应该将其删掉。

将hsrp.txt复制一份,改名称为“ChangeHtoV.txt”,把“standby”命令全部替换为“vrrp”。因为VRRP的VRID的取值范围是0—255,而在这个配置中,VRRP的VRID最大值为222,没有操作最大值,所以这个脚本可以直接修改。

OK!可以,我们针对vrrp关键字进行缩进,在vrrp关键字前面加上两个空格即可。操作方式就是按Ctrl+H,查找目标为“vrrp”,替换为“ [两个空格]vrrp。”然后,再把“interface”替换为“!\ninterface”,就可以得到输完一组命令,加上一个Cisco的命令分割符“!”了

4

生成删除脚本

删除HSRP的配置,只需要在interface vlan下,输入no standby <id>即可,所以,把hsrp.txt的内容导入到Excel中,只需要提取最关键的部分即可。

再次打开一个空白的Excel,选择“数据”—“自文本”,导入刚才保存的hsrp.txt,分割符号选择“空格”:

删除HSRP的配置,只需要在interface vlan下,输入no standby <id>即可,所以,在刚才的Excel中,把A、B、C、D前四列复制出来,到另外一个sheet中,把第C列的standby改为no standby,然后处理掉C列中的空行(因为这表示这个SVI下就没启用HSRP。)

改好以后,就可以把内容复制回Notepad++内了。

不过,你需要注意的是,从Excel复制出来的内容,关键字之间的“间隙”不是空格,而是制表符。所以要先把制表符替换为空格。然后,这个命令行应该是先interface vlan xx,然换行输入no standby xx的,所以,还要设置相应的换行。为了保证脚本的美观,也要针对配置命令执行一些相应的缩进了注释符号(Cisco的注释符号为“!”),所以,我们再进行一次美化的操作,也能得到漂亮的删除脚本了:

我粗略计算了一下,当时做这个HSRP改VRRP脚本,一台设备就搞了一个多小时。而用这种方式,两台设备的配置半个小时搞定。只可惜当时傻了啊。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档