Description

Cette page décrit les plug-ins utilisés.

Plug-ins de base

Là il n'y a pas grand chose à dire de plus que ce qui se trouve dans la doc officielle:

http://trac.mcs.anl.gov/projects/bcfg2/wiki/WritingSpecification

(Regarder le tableau en bas de page)

Plug-in python

Pourquoi ?

Après avoir testé les différents plug-ins fournis avec BCfg2 pour faire des templates, je me suis rendu compte qu'au final le plus pratique c'était de générer le fichier avec un simple script python. J'ai donc écrit un plug-in qui fait ça.

Il se trouve ici :

/usr/scripts/bcfg2/plugins/Python.py

Comment ça marche

Contrairement aux autres plug-ins pour les fichiers de configurations (Cfg, TCheetah, TGenshi) il n'est pas nécessaire de créer un dossier par fichier puisque toutes les informations peuvent être mises directement dans le fichier python.

Les permissions sur le fichier sont contenues dans la variable info qui est un dictionnaire qui vaut initialement:

{"owner": "root",
 "group": "root",
 "perms": 0644,
 "encoding": "base64"}

Donc en gros si vous voulez avoir un fichier qui ressemble à ça:

coucou 
# machin
toto
eh eh

avec les droits 0600 vous pouvez écrire ça:

info["perms"] = 0600 
print "coucou"
print "# machin"
print "toto"
print "eh eh"

Pour éviter d'avoir des fichiers saturés de print on peut utiliser quelques sucres syntaxiques:

  • une ligne de la forme @blablabla (sans compter les espaces au début) est remplacée par print 'blablabla' (échappée comme il faut).

  • une ligne de la forme %var = valeur ou %var valeur est remplacée par print '%s %s %s' % (var, keysep, valeur) (par défaut keysep vaut "=").

Include des fichiers

Les fichiers placé dans /var/lib/bcfg2/etc/python peuvent être inclue avec l'une des deux fonctions include et dump, sans l'extension .py:

include("secrets")
  • dump(fichier) inclue le fichier.

  • include(fichier) inclue le fichier une seule fois.

Par défaut, common est inclu.


CatégoriePagePublique