2012-09-02 50 views
1

我正在研究Django應用程序協助使用Fabric的Python應用程序的部署過程。Python Fabric +數據庫中的多主機配置

我對Fabric和Django都知之甚少,但我不確定如何使用它們以便能夠在服務器上運行部署和其他任務,而不是配置存儲在數據庫中。

事情是,我已經將所有需要的服務器憑證存儲在數據庫中,並希望能夠使用它們而不是在fabfile.py中聲明特定的主機(或者以某種方式參數化它們,以便像「fab server1_from_database deploy「)。我需要能夠從Django應用程序本身添加/編輯/刪除主機,而無需編輯fabfile.py。

是否有可能做到這一點?

謝謝你的幫助,我完全陷在這裏...

回答

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 

這是未經測試,但該文檔說,它應該工作。

+0

謝謝你提出的解決方案,就像一個魅力! – user1029968