自动排除网络故障

Automate troubleshooting on networks

我想开发一种工具来自动对网络进行故障排除。今天我使用我创建的 shell 脚本,它使用 bashexpect 但问题是我可以仅处理脚本末尾的数据。

当前函数:bash脚本请求用户的一些信息(用户、密码、IP、MAC),在此之后bash 脚本启动一个 expect 脚本进入我的网络设备,运行s 一个预定命令列表和输出记录在bash脚本的一个变量中,expect脚本完成后bash脚本作用于数据解析器。

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

我需要一些东西 'agent less',我正在使用 Linux。我可以使用什么编程语言/框架?你能给我任何想法和建议吗? (我不需要图形界面,命令行就完美了)

我使用SSH进入设备(有些情况下需要使用SSH进入一个跳转服务器,在里面使用脚本进入设备)。命令示例:

show ip bgp summary

ping xxx.yyy.zzz.www

show ports X

show vlan X

和其他几个人

如果我没有留下任何清楚的地方,请提前告诉我并谢谢你。

对于常见情况,您应该尝试使用 Ansible - 查看 network documentation

对于更特殊的情况,我强烈推荐 Netmiko。它是一个 Python 库,提供类似 expect 的界面并处理大量网络 ssh 问题。

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

您也应该考虑加入 Network To Code Slack community。这是提出快速问题的好地方,适合初学者和专家。