2012-09-15 22 views
1

這個問題每個主機配置變量類似 - Pass parameter to fabric task面料:外任務

我的問題是,我想部署我sphinx html documentationremote server

我還想定義一個遠程目錄,我將文件複製到每個主機的單獨任務函數之外,最好也在fabfile之外。

+0

謝謝@DanielNova的編輯。不知道你爲什麼用代碼風格寫了一些東西,但是不管。 –

+0

所以你的問題是如何從fabfile外部讀取變量/設置以更改參數? –

+0

對不起,只是想讓它看起來更加突出一些。 – lifetimes

回答

1

如果主機和路徑提前知道或可以計算,請使用字典。 EG:

env.sphinx_path = { 
    'hosta': 'patha', 
    'hostb': 'pathb', 
} 

@task 
@hosts('hosta','hostb') 
def foo(dummy_var): 
    put('sphinx_stuff', env.sphinx_path%env.host) 

否則你可以只通過類似的路徑:

fab foo:'sphinx/path' 

這將填充在上面的例子中dummy_var爲您然後在任務中使用。

+0

似乎這是在織物上做到這一點的唯一方法。謝謝。 –

+0

那麼你也可以在一個文件中提供,或者讓它調用一些數據庫,或者從一個url中獲取。幾乎所有的python都可以爲你提供一個列表或值,你可以使用。 – Morgan

+0

我知道,對,但我認爲在.fabricrc中可能存在某種每主機配置存儲。 –