我目前在Paramiko周围有自己的一组包装器,一些函数将输出记录为命令执行、重新启动某些服务器、传输文件等。但是,我觉得我正在重新发明轮子,这应该已经存在于某个地方.
我研究了Fabric,它部分提供了这一点,但它的执行模型将迫使我重写我的大部分代码,特别是因为它在全局变量中共享有关主机的信息,并且似乎最初并不打算用作图书馆。
最好,每个服务器都应该由一个对象表示,这样我就可以保存它的状态并使用类似的东西运行命令server.run("uname -a")
,提供一些基本工具,如重启、检查连接、传输文件,理想情况下甚至给我一些简单的方法来运行命令在并行的服务器子集上。
是否已经有一些提供此功能的库?