Python Fabric +数据库中的多个主机配置

时间:2012-09-02 14:48:25

标签: python database django deployment fabric

我正在研究使用Fabric的Django应用程序协助Python应用程序的部署过程。

我对Fabric和Django都有适当的了解,但是我不知道我怎么能/应该使用它们以便能够在服务器上运行部署和其他任务,而不是将配置存储在数据库中。

问题是,我已经需要存储在数据库中的服务器凭证,并且希望能够使用它们而不是在fabfile.py中声明特定主机(或者可能以某种方式参数化它们,以便调用ie。像“fab server1_from_database”部署”)。我需要能够从Django应用程序本身添加/编辑/删除主机,而无需编辑fabfile.py。

是否有可能实现这一目标?

感谢您的帮助,我完全被困在这里......

1 个答案:

答案 0 :(得分: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

这是未经测试的,但文档说它应该有效。