Fabric moi un cluster

pythonJe vous propose dans ce billet de prendre en main Fabric, un outil que j’ai utilisé récemment et qui vous permettra de scripter des déploiements sur plusieurs machines assez simplement.

Pour résumer, Fabric est une lib Python qui vous permet d’automatiser des executions de commandes via ssh sur des serveurs distants.

En sus, Fabric permet de créer une topologie de votre application : quels sont les machines “web”, les machines “bases de données” etc…

Grâce à ces infos, Fabric permet ensuite exécuter des scripts par famille de nœud. Par exemple installer la dernière version de votre Webapp sur tous les nœuds “web”.

Peut-être que si vous connaissiez déjà Rundeck tout ceci vous rappelle quelque chose puisqu’il répond a peu près à la même problématique.

Python Fabric est plus simple d’utilisation, vous ne retrouverez pas l’application Web qui permettait de gérer votre topologie et vous ne retrouverez pas les hooks qui permettaient de déclencher des actions. Mais vous allez voir qu’on y perd pas au change.

Pourquoi Fabric et pas simplement faire du script Shell ? Nous le verrons dans la suite du billet.

Et pour illustrer ce billet par un exemple de la vraie vie, vous trouverez à la fin de ce billet les sources pour installer un Cluster de 3 noeuds pour elasticsearch, MongoDB et Cassandra qui devraient fonctionner sous Debian.

Lire la suite