fabric: une aide au développement pour WaterOnMars

fabric est une application Python en ligne de commande dont le but premier est de simplifier les actions "à distance": typiquement le déploiement d'une application sur un serveur.
Je l'utilise donc pour déployer WaterOnMars sur mon serveur perso, déployer la démo sur heroku mais plus récemment j'ai ajouté la configuration de fabric (le "fabfile") aux sources de WaterOnMars comme une aide officiellement maintenue pour les diverses tâches de maintenance: lancement des tests, initialisation de la db, servir le site en local et déploiement sur un serveur au choix.
Ce qui me plaît bien avec fabric:
- ça s'installe avec pip, sans aucun souci, et hop dans mon virtualenv j'ai la commande "fab" qui est immédiatement disponible
- ça se configure super-simplement avec un seul fichier Python
- j'ai eu zero problème pour lancer des commandes à distances ((demande de mot de passe et récupération des logs et interactions en console sont parfaitement gérés))
- il y a aussi des facilités pour définir des commandes à lancer en local
Du coup le fabfile.py avec l'implémentation des ses diverses commandes est commité avec les sources tandis que le fabhosts.cfg avec ses info de connections est spécifiquement ignoré par .gitignore.
Pour avoir une idée du format de fabhosts.cfg:
[{userA}@{hostX}] site_dir = ~/path/to/wateronmars_site virtual_env_dir = ../venv final_deploy_action = touch /path/to/passenger/tmp/restart.txt
Avec plus de détails dans le fichier fabfile.py de WaterOnMars bien sûr.