1

我创建了一个在我的服务器上运行的 python 脚本,它提供了一个简单的命令行界面来运行自定义配置脚本。我正在使用 cmd 模块来执行此操作,到目前为止它运行良好:

from cmd import Cmd

class MyPrompt(Cmd):

    def do_run1(self, args):
        print("running config1")

    def do_run2(self, args):
        print("running config2")

if __name__ == '__main__':
    prompt = MyPrompt()
    prompt.prompt = '> '
    prompt.cmdloop('Starting prompt...')

我还创建了另一个脚本,它将打开 TCP 服务器并在新线程中侦听远程客户端。客户端可以向服务器发送配置命令,服务器将执行它们并发送回任何输出。现在客户端非常基础。它可以发送任何内容,并且无法访问 cmd 模块提供的漂亮接口。服务器还可以解析接收到的消息并找出客户端想要运行的命令(通过 long if else 解析器)。

我正在尝试将这两个脚本结合起来,但在找出最佳方法时遇到了很多麻烦。我想允许服务器上的某人在本地使用 cmd lscript,但我也希望 cmd 脚本接受远程客户端并同时让他们访问 cmd 提示符。另外,我需要一种方法将本地输入的命令和远程客户端发送的命令添加到队列中,以便一次运行一个配置命令(每个命令需要几分钟才能运行,并且无法在平行)。

谁能提供一些关于如何扩展我的 cmd 脚本以支持远程连接的示例或指导?我不知道从哪里开始,并且非常感谢任何帮助!

4

1 回答 1

1

您最好调查和学习 Ansible。

虽然我没有使用它的经验,但我强烈推荐它,它是在 Python 中实现和使用的。

文档似乎相当不错。

(我不使用它是因为我不需要做这种事情——我通常做应用程序开发)

于 2017-09-06T23:39:41.927 回答