自动进行网络故障排除

时间:2019-01-26 05:02:52

标签: python linux bash ansible expect

我想开发一种工具来自动进行网络故障排除。今天,我使用了自己创建的Shell脚本,它使用了 bash expect ,但是问题是我只能在脚本末尾使用数据。

当前功能: bash 脚本向用户请求一些信息(用户,密码,IP,MAC),然后 bash 脚本启动一个 expect 脚本输入到我的网络设备上,运行预定命令列表,并且在 expect <完成后,输出记录在 bash 脚本的变量中/ em>脚本, bash 脚本作用于数据解析器。

我想做些更“智能”的事情,在设备上输入,并且每个命令都可以单独处理,而无需运行所有可能的命令,返回命令行,执行解析器,并根据输出再次执行所有操作

我需要一些“较少代理”,并且我正在使用Linux。我可以使用哪种编程语言/框架?你能给我一些想法和提示吗? (我不需要GUI,只是命令行很完美)

我使用SSH输入设备(在某些情况下,我需要使用SSH输入跳转服务器,并在其中使用脚本输入设备)。命令示例:

  

显示ip bgp摘要

     

ping xxx.yyy.zzz.www

     

显示端口X

     

显示vlan X

和其他几个

如果我还不清楚,请提前告知我。

1 个答案:

答案 0 :(得分:-1)

在常见情况下,您应该尝试通过network documentation浏览Ansible。

对于更特殊的情况,我强烈推荐Netmiko。这是一个Python库,提供了类似于期望的界面并处理了许多网络ssh怪癖。

要使命令通过跳转框运行,您可以查看ssh config选项以转发命令。然后,脚本的命令将自动通过跳转框进行代理。抱歉,我不记得确切的选项,找到魔术组合可能很痛苦。

您还应该考虑加入Network To Code Slack community。在这里,您可以快速提问,也可以将初学者与专家相提并论。