Python-使用线程将SSH包装器连接到远程设备

时间:2018-11-14 03:44:43

标签: python multithreading ssh

我要解决的问题如下:

  • 同时实例化5-10个主机ssh会话(线程?)
  • 保留已建立的连接并等待外部呼叫
  • 在Host类下执行预定义的方法(例如getUberImportantDetails())
  • 使用flask rest API公开ssh包装器的信息和选择的方法。

    <a href="/index"></a>
    

主机的 init ()方法必须获取主机ip地址,用户名和密码。 在从对象中获取任何信息之前,我需要运行connect方法以在一系列Jumphost上建立SSH连接。 主机类连接路由完成后,就可以与远程设备进行交互了。

我能够使用线程包装器初始化类对象,但是我还想在connect()函数完成所有工作并且处理程序准备好与远程设备进行交互之后,让线程继续运行。我该怎么做呢? 有没有更好的方法来解决我的问题?

class Host():
    def __init__(self, host, user, psw):
        super().__init__(host, user, psw)
        self.bypass = ''
        self.state = "IDLE"

    def connect(self):
       self.ssh = paramiko.SSHClient()
       <a lot of regexp based SSH processing>

   def getUberImportantDetails(self):
        output = self.execute("show very important data")
    return SRE4BGPNeighborParser(output)

0 个答案:

没有答案