Puppet et Capistrano : la clé de l’automatisation

Puppet est un produit open source qui permet de gérer à moindre frais une infrastructure importante en centralisant la gestion de la configuration des machines : il permet de maintenir la configuration des différents types de machines d’une infrastructure iso entre elles et de démarrer rapidement une instance en l’associant à un type de nœud Puppet. Il capitalise également les connaissances sur les composants/paramétrages de chaque type de machines via ses descripteurs.

Capistrano est un produit open source qui permet d’associer des machines à des rôles (exemple : role :web, « frontal1 », « frontal2 ») et d’exécuter une tâche donnée en parallèle sur toutes les machines d’un ou plusieurs rôles. Il permet également de capitaliser les connaissances sur les différentes tâches de l’infrastructure et les rend reproductibles et centralisées, donc fiables. Il se connecte en SSH et donc assure un niveau de sécurité minimum.

 
Logo Puppet Logo Capistrano
 
Vous pouvez également accéder aux versions IPhone et IPod de ce webcast :

Version IPhone
Version IPod

 

Puppet et Capistrano sont 2 outils ayant pour but de capitaliser les connaissances sur le fonctionnement d’une infrastructure et de l’automatiser de façon à l’homogénéiser et la fiabiliser.

Chacun des outils à son propre rôle et utiliser les 2 est une très bonne solution, Puppet étant attaché au maintient d’une configuration iso à tout moment entre chaque machine d’un même type et Capistrano permettant d’exécuter des tâches plus ou moins complexes en parallèle sur des groupes de machines assignées à des rôles.

Il est également possible en poussant le fonctionnement un peu plus loin, dans un environnement virtualisé par exemple, d’avoir un script qui démarre des machines, installe le client Puppet sur celles-ci, référence les nouvelles machines et accepte les certificats au niveau du Puppet Master, puis redémarre le client, avant de lancer une tâche Capistrano qui déploie la dernière version de l’application à partir de SVN sur les serveurs ne possédant pas encore l’application. En un clic, il est possible de multiplier le nombre de ses frontaux pour absorber un pic de charge par exemple.

Le mot clé est : « automatisation ! »

Frédéric FAURE

5 commentaires pour Puppet et Capistrano : la clé de l’automatisation

  • Bonjour Frédéric,

    Je pourrais te dire que c’est très intéressant (encore), très clair (encore) mais ça ferait copié/collé… ;o))

    Ces outils fonctionnent-ils sous Windows ? ( Je sais c’est pénible comme question )

    Cordialement,

    ChrYStophe

  • Pour Puppet : non. En tout cas pas pour l’instant.

    Pour Capistrano, la question est en fait : Windows peut-il faire du ssh (serveur) ? Alors nativement, la réponse est non. Il y a bien quelques serveurs pas toujours maintenus ou bien toujours la solution Cygwin, mais pour un environnement de prod… En plus sous EC2, où il faut récupérer le mot de passe à partir de la clé privée générée, la tâche semble difficile. Heureusement, quelqu’un qui a dû en avoir assez de booter des instances Windows à la main à mis à disposition ec2-sshd (en JAVA, donc nécessitant un JRE) !

    Il s’agit d’un démon SSH permettant d’effectuer du SCP, de lancer des processus et surtout de s’authentifier en utilisant la clé utilisée pour booter l’instance.

    A partir de ce moment, il est possible d’effectuer du Capistrano sur des instances Windows bootées sur Amazon.

  • PS : A noter que Capistrano et Puppet ne sont pas liés à la virtualisation ou au cloud computing, ils peuvent être utilisés sur des infras « physiques ». Seulement les possibilités qu’ils offrent sont encore plus grandes dans ce cas, notamment du fait du boot des instances par ligne de commande et plus généralement du fait de la dématérialisation de l’infra et de la possibilité de la manipuler par le code.

  • fanfan

    Tres beau tutoriel.merci

Répondre

 

 

 

Vous pouvez utiliser ces balises HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>