私のファブリック スクリプトには、次の問題があります。autodeploy と呼ばれる主なタスクがあります。このタスク内には、ローカルで一度だけ実行したいタスクがいくつかあります。すべてのリモート タスクは、ホスト リストの各ホストで実行する必要があります。
env.roledefs ={
'testing': ['t-server-01', 't-server-02']
'staging': ['s-server-01', 's-server-02']
'live': ['l-server-01', 'l-server-02']
}
def localtask1():
# download artifact
def localtask2():
# cleanup locally
def remotetask():
# deploy artifact to all hosts
def autodeploy():
localtask1() # run this task only once, locally
remotetask() # run this task on all hosts
localtask2() # run this task only once
呼び出しは以下です。ロールを属性として渡したい。
fab -R test autodeploy