Archive

Archive for mai 2011

Puppet

Je vous parlais il y à quelques temps de CFEngine en termes de déploiement automatisé mais j’utilise depuis maintenant 2 bons mois une autre techno de ce genre : Puppet. Il s’agit à nouveau d’un outil dont je ne rappellerai pas trop les concepts principaux qui sont décrits dans l’article CFEngine 3 mais je m’attarderai plus sur les spécificités du programme en lui même.

Intro :

Puppet est un gestionnaire de déploiement de configurations basé sur le langage Ruby; de ce fait un environnement Ruby sera nécessaire pour son bon fonctionnement sur les différents postes à administrer. Le programme en lui même permet les opérations suivantes :

– Installation de paquets automatisée

– Execution de commandes shell

– Copie de fichiers de configuration entre clients/serveur

– Génération de fichiers de configurations spécifiques

– Maintient à jour des systèmes et gestion de versions

– Etc

Certes beaucoup de points communs avec CFE vous allez me dire mais la principale différence que j’ai constatée est que Puppet est bien plus rapide à prendre en main (je ne vais pas non plus trop troller :p) malgré les perfs utilisées par Ruby et que l’on peut utiliser beaucoup de fonctions avancées inexistantes sur CFE.

Fonctionnement :

Puppet fonctionne en mode client/serveur, de ce fait 2 paquets distincts sont disponibles sur les différents repos correspondant à votre distribution (sauf pour Gentoo où les 2 paquets sont liés). Le paquet Puppetmaster comprend le serveur ainsi que les différents outils pour l’administration (gestion des certificats, templates,etc), le client contient quand à lui l’outil de synchronisation et un système de reporting. Les différentes configurations sont basées sur une approche de Ruby et donc certaines fonctions avancées de programmation seront disponibles (tiens on parlerait de langage objet?) telles que les boucles, classes et autres.

Autre chose ?

Oh que oui, le fait que Puppet utilise Ruby permet de développer différents outils afin de simplifier l’utilisation du programme, par exemple CFEngine ne possède pas d’IHM, ce qui peut être problématique, Puppet quand à lui possède différentes interfaces pouvant être liées au système. Il n’y à également pas besoin de mettre en place de serveur web de type apache pour accéder aux interfaces d’administration car Puppet utilisera le serveur Rails intégré à Ruby et ne prendra donc pas de ressources supplémentaires.

Pour finir :

Comme pour CFEngine, Puppet ne possède pas beaucoup de documentation en français, cependant je me suis rédigé quelques « how to » que je mettrai à votre disposition via le blog assez rapidement (bien que j’aie des deadlines assez short en ce moment). Cependant le site de PuppetLabs reste très bien fourni en documentation en anglais si jamais vous voulez déjà jeter un coup d’oeil 😉

Pour ma part je vous dit à bientôt pour de nouveaux articles avec un délai un peu plus rapproché entre les publications 😉

Publicités