Description

Cette page contient une description assez générale de BCfg2, outil qui est utilisé au Cr@ns. Voir les liens en annexe pour des détails plus techniques.

Qu'est ce que c'est ?

BCfg2 est un système de configuration centralisé. L'idée est de maintenir un unique dépôt dans lequel on va décrire "l'état" souhaité de chacun des serveurs dont on dispose. BCfg2 s'occupe ensuite de s'assurer que chacun des serveurs est dans l'état voulu.

L'état d'un serveur comporte notamment les éléments suivants :

  • Les fichiers de configuration
  • Les paquets installés
  • Les services activés

L'intérêt d'un tel système est multiple:

  • Avoir un unique endroit où est stockée toute la conf, on a une vision globale en regardant à un seul endroit.
  • Pour les services qui sont sur plusieurs serveurs, il suffit de modifier uniquement la configuration qui se trouve dans le dépôt, et les modifications sont ensuite répercutées automatiquement sur tous les serveurs.
  • Pouvoir faire des templates sur les fichiers de configuration (très utile ...).

Pourquoi celui-là et pas un autre ?

BCfg2 n'est pas le seul soft remplissant cette tâche. Sa mise en place au Cr@ns a débuté fin 2007. Avant on utilisait cfengine : CransTechnique/CfEngine.

Et encore avant il y avait un dossier common_etc qui était monté en nfs sur tout les serveurs et des scripts shell qui recopiaient la configuration au bon endroit.

On a abandonné cfengine parce qu'il avait quelques problèmes, notamment il n'offrait pas de système de templates mais juste un système pour éditer les fichiers à la volée pas très intuitif, ainsi que des politiques de mise à jour contestables. De plus la manière de décrire de l'état d'un serveur était assez lourde.

BCfg2 a une architecture beaucoup plus modulaire avec notamment un système de plug-in assez puissant. De plus il est écrit en Python, ce qui rend assez facile l'écriture de nouveaux plug-ins.

Architecture

Le système est composé d'un serveur central - sur lequel est entreposé le dépôt avec la description du parc de serveurs - ainsi que d'une série de clients (le serveur est en général lui aussi client). Les clients reçoivent de la part du serveur une description de leur état, puis tentent de faire évoluer leur état actuel vers cet état, puis renvoient au serveur des statistiques sur ce qu'ils ont fait, et éventuellement les problèmes qui sont survenus. Ces informations remontent ensuite aux admins sous forme de mails et/ou par l'intermédiaire d'un site.

Liens utiles

  • Pour une description plus complète de BCfg2 : /Fonctionnement

  • Le minimum à connaître (notamment les commandes) : /Bases

  • Les fichiers pseudo-générés (/etc/network/interfaces, /etc/fstab, ...) : /FichiersSpeciaux

  • Une description de l'architecture adoptée au Cr@ns (à lire si vous voulez par exemple ajouter un service ou faire des modifications importantes) : /ArchitectureCrans

  • Un petit tuto complet montrant comment définir la conf d'un service à partir de zéro : /Tutorial

  • Une descriptions des plug-ins et notamment des plug-ins maisons : /Plugins

  • Le site officiel avec le RTFM complet : http://trac.mcs.anl.gov/projects/bcfg2

  • C'est parti! : La todo list


CatégoriePagePublique