我知道使用fabric,你可以将参数传递给Fabric任务,如:
def task(something=''):
print "You said %s" % something
fab task:something='hello'
如果我想将一些参数传递给roledef该怎么办?这是我的例子:
env.roledefs = {
'node1': ['node1.%s' % DOMAIN],
'node2': ['node2.%s' % DOMAIN]
}
无论如何,我可以通过运行类似的方式传入DOMAIN:
fab task -argument='mydomain.com' (pseudo code)
答案 0 :(得分:3)
您可以通过--set cmd选项设置自定义env变量:
fabric task --set domain='mydomain.com'
然后在fabfile中,只需阅读env.domain
:
env.roledefs = {
'node1': ['node1.%s' % env.domain],
'node2': ['node2.%s' % env.domain]
}
希望对你有所帮助。