我们将这种模式用于我们的主机(和linux用户):
coreapp_customer_stageID@server
我想在符合模式的主机列表上运行结构命令。
示例:我想在客户“c1”的核心应用“foocms”的所有主机上运行“date”。
我可以使用角色,但是有很多客户......全局匹配方式会很好。
答案 0 :(得分:0)
你可以用这个
@task
def set_hosts(lookup_param):
'''
'''
hosts=get_all_systems() # that needs to be implemented by you.
regex=re.compile('^%s' % lookup_param.replace('*', '.*'))
sub_hosts=[host for host in hosts if regex.match(host)]
if not sub_hosts:
raise ValueError('No host matches %s. Available: %s' % (lookup_param, hosts))
env.hosts = sub_hosts
@task
def date():
run('date')
示例:fab set_hosts:coreapp_customer1_* date
取自:http://docs.fabfile.org/en/1.7/usage/execution.html#the-alternate-approach