[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