1

私のアプリケーションには、Linux ホストのファームを制御するための Python スクリプトがあります。より正確には、クラスター化されたデータベース管理システムを使用しています。このスクリプトは、クラスターを制御するための日常的なタスク (ノードの開始、ノードの停止、ノードのステータスの取得など) を実装します。

現在、スクリプトは標準の Python ライブラリのみを使用して Python で記述されています。ssh によるリモート ホストへのアクセスには paramiko を使用します。これは非常に見苦しく、スクリプトの開発者や保守担当者にとって役に立ちません。

python-fabricに切り替えたい。

私の問題は、スクリプトを正しく記述してディストリビューション (パッケージ、tar.gz など) にパックするにはどうすればよいかということです。

主なアプリケーション ビルド システムは CMake であり、configure_fileステートメントを使用してテンプレートからスクリプトを生成し、C++ アプリケーション、ライブラリなどへのフル パスを置き換えます。

ビルドスクリプトで次のことを行います。

  1. virtualenv を使用して別の環境を作成する
  2. 別環境にpipをインストール
  3. 別の環境にファブリックをインストールする
  4. virtualenv によって生成された「activate」スクリプトを実行し、そこから何かを呼び出します

このソリューションの欠点は何ですか? 他にどのようなソリューションを提案できますか?

4

1 に答える 1

1

質問が漠然としすぎているため、回答が得られていないと思います。

Fabric は、ssh コマンドの自動化を簡素化するツールです。run()でリストしたことは、コマンド ラインからファブリック経由で行う場合と基本的にまったく同じ方法で行うことができます。それは素晴らしいツールです。

virtualenv new_envとなりrun('virtualenv new_env')ます。パッキングに関する限り、(setup.py ファイルを使用して) 任意の python パッケージをパックするのと同じ方法でパックできます。

ビルド/展開を簡素化することに熱心な場合は、ファブリックの使用を開始し、ドキュメントでカバーされていない問題が発生した場合はここに戻ってください.

于 2012-07-06T01:02:17.907 に答える