2016-11-14 10 views
0

私は展開が必要な2つのサーバーがありますが、設定が少し異なります。アプリケーションは、各サーバー上の別のパスに配置されます(/var/www/sites/my_siteおよび/var/www/my_site)。pythonファブリックにdynamic remote_pathを付けてください

env.roledefs = { 
    'production': ['host1.foo.bar', 'host2.foo.bar'] 
} 

@task 
@roles(['production']) 
def deploy(): 
    files = getBundlePaths() 

    for file in files: 
     # How would I go about uploading to a different path per server? 
     put(file, ...) 

答えて

1

たぶん、あなたはパスとあなたが上にある現在のホストからそのオフキーでセットアップ別の変数をすることができます:

私のファイルには、多少のようになります。このようなもの

from fabric.api import * 

env.roledefs = { 
    'production': ['host1.foo.bar', 'host2.foo.bar'] 
} 

env.paths = { 
    'production': { 
     'host1.foo.bar': '/var/www/sites/my_site', 
     'host2.foo.bar': '/var/www/my_site' 
    } 
} 

@task 
@roles(['production']) 
def deploy(): 
    files = getBundlePaths() 

    path = env.paths[env.effective_roles[0]][env.host] 
    print(path) 

    for file in files: 
     put(file, path) 
関連する問題