Uma solução alternativa para algo mais dinâmico ... nenhuma configuração estática no fabfile, usando o bash.
mfab() {
hosts=()
while [ "$#" != 0 ]; do
if [ "$1" = -- ]; then
shift
break
fi
hosts+=("$1")
shift
done
list=$(echo "${hosts[@]}" | tr ' ' ',')
fab -H "$list" "$@"
}
Aqui está uma maneira de fazer uma corrida seca ... execute isso antes dos testes:
fab() { echo fab "$@"; }
exemplo 1: lista de tamanho arbitrário usando expansões de shell / globbinb / o que você quiser usar
mfab node{A..D}{01..05} -- example_command
executará um comando como:
fab -H nodeA01,nodeA02,nodeA03,nodeA04,nodeA05,nodeB01,nodeB02,nodeB03,nodeB04,nodeB05,nodeC01,nodeC02,nodeC03,nodeC04,nodeC05,nodeD01,nodeD02,nodeD03,nodeD04,nodeD05 example_command
exemplo 2: acabei de implantar 7 novas máquinas e cada segunda está quebrada e quero executar um comando para verificar / corrigir isso.
mfab node{100..106..2} -- example_command
executará um comando como:
fab -H node100,node102,node104,node106 example_command
exemplo 3: mais opções incluindo --
usado pelo próprio tecido:
mfab node{01..10} -- -P -- uname -a