2013-09-19 3 views
0

Мы используем эту модель для наших хостов (и пользователей Linux):Выполнить задание на хостах, которые соответствуют шаблону

[email protected] 

Я хочу, чтобы запустить команды ткани в списке хостов, которые соответствуют шаблону.

Пример: Я хочу запустить «дату» на всех хостах основных приложений «foocms» клиента «c1».

Я мог бы использовать роли, но есть много клиентов ... Совпадение с глобусом было бы хорошим.

ответ

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

Смежные вопросы