cfengine : un outil pour l'administration d'un parc de machines
cfengine est un incontournable pour les administrateurs système qui doivent migrer un parc de machines hétérogènes
Le numéro 95 de juin 2007 de Linux Magazine, repris sur le site des mongueurs français, présente cfengine (cf comme le .cf de sendmail - mais rien à voir avec le vénérable serveur smtp).
C'est en réflechissant à la migration d'un ensemble de stations de travail Sun en 1993 à l'université d'Oslo, que le fondateur du projet, Mark Burgess, s'est dit qu'au lieu de scripts shell ou Perl disparates, il vaudrait mieux une méta plate-forme pour ce type de tâche. Il en est venu à considérer en fait la migration d'un parc de machines hétérogènes (rien que ça).
Sans surprise, l'ensemble des caractéristiques et possibilités de ce qu'on peut qualifer comme un couteau suisse de l'administration système montre qu'il s'agit d'un outil qui repose sur des concepts véritablement intelligents.
Au départ, on spécifie un design d'ensemble du système et cfengine se charge de maintenir une configuration d'ensemble, un peu comme si on avait bardé le dispositif de capteurs qui évaluent l'état général et s'il est modifié, le rectifient pour qu'il se conforme aux spécifications du départ.
Concrètement, on trouve un fichier principal de configuration ('cfagent.conf'), hébergé sur la machine locale ou sur un hôte distant désigné comme "serveur de stratégie". Il spécifie quel doit être le comportement voulu de la machine locale.
cfengine s'appuie en dynamique sur quatre programmes : cfkey, cfagent, cfservd et cfrun. D'autres existent (cfgetenv, etc.), mais ils se rapportent à un usage plus avancé.
-
cfagent est le programme qui va analyser et exécuter les fichiers de configuration et il est bien évidemment indispensable. Il se configure avec les fichiers update.conf et cfagent.conf.
-
cfrun est le programme qui va permettre de lancer les cfagent à distance.
-
cfservd est pour sa part un daemon (vous l'aurez deviné, eh eh...). Il fait office de serveur de fichiers intégré à cfengine. Il permet également de lancer cfagent sur une sollicitation réseau. Il est d'une certaine manière l'agent de veille qui permet de repérer des évolutions non souhaitées dans les configurations du système.
-
cfkey, enfin, est l'entité responsable de la création d'une paire de clés publique/privée utilisées pour sécuriser la connexion entre cfagent, cfrun et cfservd. Il est un peu comme ssh-keygen.
Dans son intention, si ce n'est aussi dans quelques-uns de ses concepts, on peut dire que cfengine a inspiré Puppet qui est devenu à juste titre assez populaire ces derniers temps.
Vous pourrez aussi retrouver des infos sur cfengine dans cet article et dans le podcast 106 de FLOSS Weekly avec une interview de Mark Burgess. Enjoy !
tags : cfengine
mis en ligne : Sun Feb 28 18:55:23 CEST 2010