是否有:
一个免费提供的程序,可以将思科“show conf”的输出转换为一些合理的XML,比如这个(可能不是很明智的)块形式:
<aaa>
<new-model/>
<authentication>
<login>
<default>
<group id="tacacs+">enable</group>
</defult>
</login>
<!-- ...etc... -->
</authentication>
</aaa>
...或者,如果没有,在我可以实现的XML架构中?如果不深入了解IOS语法,那么构建模式就会变得非常棘手。
答案 0 :(得分:2)
思科没有为IOS配置提供架构。但是,您可以有两种选择:
Cisco的IOS XR具有内置的XML支持。根据路由器的型号,您可以升级。您必须启用“xml-agent”功能才能使其正常工作。请注意,此功能并不总是被认为是可靠的(最后我们检查过有些错误导致我们无法使用它),但它应该对很多人来说已经足够了。
如果升级不是一个选项,那就是这个可怕的丑陋黑客(这是我的错):
http://code.google.com/p/text2xml/
它带有IOS语法(存储库中的syntax / ios.def),支持将大量命令转换为XML,但绝不完整。尽管如此,它仍适用于大量非常复杂的配置,并且扩展它以支持新的IOS命令应该仅仅是将新命令添加到(痛苦地不可读且难以理解)语法定义中。
您仍然希望将生成的XML转换为更稳定的XML,但XML转换比解析IOS(这是一个皇家PITA)更容易。
[编辑] 上面的答案现在基本上已经过时了:我写了Gelatin,它允许您将IOS和IOS XR配置转换为XML,JSON或YAML - 无论您喜欢哪个。这基本上是上述丑陋黑客的替代品,但有以下不同之处:
简短的操作方法:
下载并安装Gelatin:
git clone git://github.com/knipknap/Gelatin.git
cd Gelatin
sudo python setup.py install
该软件包包含IOS语法(syntax / ios / show_running_config / syntax.gel)和IOS XR的另一种语法(syntax / ios_xr / show_running_config / syntax.gel)。
使用以下命令将配置转换为XML:
gel -s syntax.gel config.txt
如果失败,请file a bug使用不起作用的配置。 (或者更好的是,附上一个语法补丁。)我完全希望很多IOS命令仍然缺失,所以不要害羞。
Gelatin可用于将几乎任何内容转换为XML,如果您碰巧创建自己的语法文件(更多说明为here),请发送给我们。我很乐意接受任何反馈。< / p>
答案 1 :(得分:1)
我在12.4(20)T,12.2(33)SRE,12.2(54)SG和更新的时候遇到XML-PI来处理这样的问题。