[augeas-devel] Similar model based configuration manager

Dominique Dumont dominique.dumont at hp.com
Wed Apr 23 15:35:52 UTC 2008


Hello

For you information, I know of 2 other model based configuration
managers which have similar goal than Augeas:

- Config::Model project [1] (which I'm the author)
- MountManager [2] (Сергей is the author and he will correct me if I
  make mistake in describing his project)

MountManager main points are:
- dedicated to /etc/fstab configuration
- user oriented: users are offered a nice QT GUI
- has no external API (AFAIK). 
- fstab structure, possible parameter and help (English and Russian) is
  declared in a data file (that's a good point).
- /etc/fstab parsing is done with a python ad-hoc parser.
- Generalizing MountManager to other configuration files might be
  challenging.

Config::Model main points are:
- provides a generic approach to configuration management.
- Configuration structures (aka configuration models) are also tree
  based (like Augeas).
- is user oriented: users are offered a Perl/Tk GUI (or Curses or
  shell like UI)
- has an API (perl API or simple STDIN/STDOUT ASCII interface)
- Configuration elements can:
  * be typed (string int, number, enum, boolean)
  * have constraints (min max...)
  * have user help (English only)
  * be classified in "permission" (intermediate, advanced, master)
  * be classified in level (normal, important, obsolete)
- The configuration structure is modified depending on "main"
  parameters. For instance, the structure ext2 options when
  file_system parameter is set to 'ext2'. These ext2 specific options
  will vanish from the model) if the user selects another fs type.
  The UI will reflect these structural changes (morphing mechanism)
- parser and writer (lenses equivalent) are written in ad-hoc perl (or
  existing Perl libraries are used for most common formats)
- Configuration models can be edited with a similar GUI (with
  Config::Model::Itself)
- Currently, Config::Model does not yet support many files:
  * /etc/fstab model is an example
  * /etc/X11/xorg.conf is alpha (and not complete)
  * /etc/ssh/sshd-config is under development (but should be complete
    on first release)

To give you an example, here are some pointers to the fstab config example:
- Fstab config model description: 
  http://search.cpan.org/src/DDUMONT/Config-Model-0.621/examples/fstab/Fstab.pl
- fstab parser (included in the test file):
  http://search.cpan.org/src/DDUMONT/Config-Model-0.621/examples/fstab/fstab_test.pl
- and the screenshot of the GUI generated from Fstab model:
  http://sourceforge.net/project/screenshots.php?group_id=155650&ssid=78908

>From what I understood of Augeas, your software main points are:
- generic approach to configuration management (but can it apply also
  to more complex configuration like Xorg ?)
- More script or program oriented than user oriented (no help,
  requires lot of knowledge from user, only shell UI)
- Something like grammar based parser which extract the structure from
  the config file. (What if the config file is wrong from the start ?)

So the main point of this message is to inform you that you are not
alone in thinking on this problem. ;-)

The second point is to trigger a discussion on how our project are
overlapping or how could they work together.

For instance, I think I could interface Config::Model to Augeas
API. (but I don't know if I could extract the structural informations
from Augeas and feed them to Config::Model). 

Feel free to contact me if you want more details on Config::Model.

All the best


[1] http://config-model.wiki.sourceforge.net/
[2] http://www.kde-apps.org/content/show.php/MountManager?content=76502

--
Dominique Dumont 
"Delivering successful solutions requires giving people what they
need, not what they want." Kurt Bittner




More information about the augeas-devel mailing list