0
我想在不同的pc組上運行不同的命令。 我的布文件中像下面:如何在使用fabric的不同組中運行自動化任務
env.hosts = ['125.221.225.31','125.221.225.36','125.221.225.33','125.221.225.34','125.221.225.35']
env.roledefs = {
'master':['125.221.225.31'],
'slave':['125.221.225.33','125.221.225.34','125.221.225.35','125.221.225.36']}
@roles('master')
def get_last_hosts():
with cd('/etc'):
get('hosts','/tmp/hosts')
@roles('slave')
def upload_hosts():
with lcd('/tmp'):
put('hosts','/etc/hosts',use_sudo=True)
def update_hosts():
get_last_hosts()
upload_hosts()
我可以運行:
fab get_last_hosts,
,然後運行:
fab upload_hosts
我想這些步驟合併成一個步驟,可以這麼說:
update_hosts
但是不行,它會在env.hosts中的每臺電腦上運行update_hosts
,這不是我想要的。