Eu uso Jenkins (CI Server) e Capistrano 2 (Ruby build / deploy). Você não precisa necessariamente do Jenkins para isso, mas um servidor de CI é ótimo para esse tipo de trabalho. Capistrano é ótimo porque eu posso fazer uma coisa / muitas máquinas facilmente e posso lidar com o check-out do SCM (git ou mercurial como você pediu) se você quiser. O Fabric (Python) também é um bom framework "deploy".
Fluxo de trabalho:
- Capistrano faz check-out de um branch / master git contendo script na máquina local
- O Capistrano envia o arquivo de script para todas as máquinas via scp ou sftp. (: deploy_via,: copy)
- O Capistrano executa o script em todos os nós "app", em paralelo ou sequencialmente, e relata sucesso ou falha.
Você pode substituir o Capistrano por (Fabric | bash | Chrome | receita do chef | configuração do fantoche)
Agora, se você tiver um servidor de IC em execução, poderá gerenciar as chaves SSH e a administração de um ponto central.
Eu posso seguramente assumir que você está usando o Windows para desenvolvimento local, se estas também são máquinas Windows que você está implantando ... você pode querer considerar os comandos Powershell executados a partir do Capistrano ao invés do modo "unix" que descrevi aqui. O desafio é como X registra na caixa Y e executa Z, uma questão diferente.