O tecido seria ideal para esse tipo de tarefa. Se você estiver familiarizado com python, você tem muita flexibilidade com o que pode fazer.
O Capistrano é outra opção que pode ser útil, eu usei para implementações do Rails e não tive problemas lá. Permite que você execute facilmente os comandos do shell em hosts remotos.
Outra opção pode ser usar o Ant (python way with fabric é muito melhor imo).
Você está usando o controle de origem como o git? Você pode adicionar algumas dessas tarefas como ganchos de pós-commit ao enviá-lo para sua ramificação "produção".
O rsync seria a opção mais rápida e segura. Certifique-se de excluir quaisquer arquivos que não devam estar em produção (arquivos de backup, arquivos .swp do vim, etc.).