2017-09-06 2 views
0

カスタム構成スクリプトを実行するための簡単なコマンドラインインターフェイスを提供する私のサーバーで実行しているpythonスクリプトを作成しました。私はこれまでのところ、これを行うために、CMDモジュールを使用したことだし、それは素晴らしい仕事をしています:Pythonのcmdモジュールを複数のTCPクライアントでリモートで使用できますか?

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サーバーを開き、新しいthread.Clientsでリモートクライアントをリッスンします別のスクリプトを作成した設定を送信することができますサーバとサーバへのコマンドはそれらを実行し、出力を返します。現在、クライアントは非常に基本的です。それは何かを送ることができ、cmdモジュールが提供するすばらしいインターフェースにアクセスすることはできません。受信したメッセージを解析し、クライアントが実行したいコマンドを(別の長いパーサーを介して)把握するのはサーバーにとっても同じです。

私はこれらの2つのスクリプトを組み合わせようとしていますが、私はそうする最良の方法を考え出すのに多くの問題があります。サーバー上の誰かがローカルでcmd lscriptを使用できるようにしたいのですが、cmdスクリプトがリモートクライアントを受け入れ、同時にcmdプロンプトにアクセスできるようにします。また、私はローカルに入力されたコマンドのための方法と、リモートクライアントから送られたコマンドを一度に1つずつ実行するためにキューに追加するコマンドが必要です(各コマンドは実行に数分かかり、平行)。

リモート接続をサポートするためにcmdスクリプトを拡張する方法の例やガイダンスはありますか?私はどこから始めるべきか分かりませんし、どんな助けにも非常に感謝しています!

答えて

1

あなたはおそらく、Ansibleを調査して学習する方がよいでしょう。

私はそれについての経験はありませんが、それは私に強く推奨されており、Pythonで実装され、Pythonを使用しています。

ドキュメントはかなり良いようです。

(私はこの種のことをする必要はないので使用しません - 一般にアプリケーション開発を行います)

関連する問題