为什么结构报告“找不到主机”?

时间:2011-03-10 10:34:48

标签: python fabric

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:

找不到主机。请指定(单个)主机字符串以进行连接:

为什么?

2 个答案:

答案 0 :(得分:4)

test致电test1deploy时,@roles不会被考虑在内。您应该使用execute(test)execute(test1)来调用这些函数。

另见:

答案 1 :(得分:1)

因为没有设置env.hosts。你的test()函数不使用run()或任何需要ssh连接的类似命令,而deploy()可能是()。

首先阅读这些内容:

http://docs.fabfile.org/en/1.0.1/usage/env.html#hosts

http://docs.fabfile.org/en/1.0.1/usage/execution.html#hosts