1

Fabric を使用して Python アプリケーションの展開プロセスを支援する Django アプリケーションに取り組んでいます。

私は Fabric と Django の両方をある程度知っていますが、構成がデータベースに保存される以外に、サーバー上で展開やその他のタスクを実行できるようにするために、それらをどのように使用できるか、または使用する必要があるかわかりません。

問題は、必要なすべてのサーバー資格情報がデータベースに保存されており、fabfile.py で特定のホストを宣言する代わりにそれらを使用できるようにしたいということです (または、何らかの方法でそれらをパラメーター化して、つまり、「fab server1_from_database deploy」のように sth を呼び出します)。 . fabfile.py を編集せずに、Django アプリケーション自体からホストを追加/編集/削除できる必要があります。

どういうわけかこれを達成することは可能ですか?

助けてくれてありがとう、私はここで完全に立ち往生しています...

4

1 に答える 1

2

それは難しいことではありません。fabfile でenv、データベースからの資格情報を使用してオブジェクトを初期化します。

from fabric.api import *

credentials = load_credentials_from_your_db()
for (hostname, username, password) in credentials:
    host_string = username + '@' + hostname
    env.hosts.append(host_string)
    env.passwords[host_string] = password

テストされていませんが、ドキュメントによると、動作するはずです。

于 2012-09-02T15:07:32.997 に答える