env.roledefs = {
'seed': ['host1'],
'peer': ['host2']
}
@roles('seed')
def test():
pass
@roles('peer')
def test1():
pass
def deploy():
test()
test1()
fab test,fab test1 - 一切正常
fab deploy:
找不到主机。请指定(单个)主机字符串以进行连接:
为什么?
答案 0 :(得分:4)
从test
致电test1
和deploy
时,@roles
不会被考虑在内。您应该使用execute(test)
和execute(test1)
来调用这些函数。
另见:
答案 1 :(得分:1)
因为没有设置env.hosts。你的test()函数不使用run()或任何需要ssh连接的类似命令,而deploy()可能是()。
首先阅读这些内容: