The amount of effort spent creating and re-creating tools to parse, edit and transform a variety of unnecessary, unstructured data formats over the last 30 years, and to continue doing this for the next 10 years, is less than that required to:I am pleased to announce a new configuration management project: Augeas, a low-level configuration API and editing tool. Augeas' main goal is to make programmatic changes of configuration data on Linux/Unix systems simple and safe. The main stumbling stone for this is that configuration data is stored in numerous files in widely varying formats. This is both next to impossible to change and is valuable in many situations.
* write an RFC for a standard format
* create patches to applications to support that format
* create an editor for that format (which handles data - settings, values, parents and children, rather than presentation related info like lines and paragraph)
* package those changes in a distribution
Using 'widely varying formats' is not 'valuable'. It's an unfortunate accident that wastes everyone's time with various horrible bandaid solutions, and occasionally makes destroying user data an 'accepted limitation' of tools like system-config-named.
Mike
Rather than demanding a radical change, Augeas adapts to this reality. Augeas parses configuration files in their native formats and transforms them into a tree. Configuration changes are made by manipulating this tree and saving it back into native config files (/etc/hosts, /etc/grub.conf, ...). The tree abstracts away all the pesky details that make editing config files with grep/sed/awk so challenging, and exposes config data uniformly, regardless of the format in which it is actually stored. With this approach, the programs/daemons relying on config files continue to work as they do today, and editing config files with Augeas can be interleaved with changing them by other means, from vi to existing perl scripts. What is it ? ============ Augeas consists of a C library and API, a command line tool to manipulate configuration from the shell, and language bindings for Ruby and Python. The file <-> tree transformations are driven by schema descriptions, one for each file format. Schemas essentially consist of regular expressions describing the file structure and instructions on how to map matches into the tree. The hope is that over time, the set of schemas becomes both complete and sufficiently widespread to provide a canonical tree view of common configuration data. Where can I find Augeas ======================= Augeas' website is http://augeas.net/ Downloads can be found at http://augeas.net/download/ To learn more, start with the introductory tour at http://augeas.net/tour.html Discussions around Augeas happen on augeas-devel, https://www.redhat.com/mailman/listinfo/augeas-devel Help wanted =========== Augeas is a reasonable proof-of-concept as of now; there are lots of things that need to be done, and that I would love for others to pitch in. Some of them are listed in the todo list at http://augeas.net/todo.html The most pressing issues right now though are * Enable your favorite config mgmt tool to use Augeas as the low-level config editing tool * Cover more config files and write schemes for them; even without writing actual schema, a discussion on augeas-devel on how config file X would best be mapped into the tree would be really useful. * Anything to improve the quality of the current implementation; I know I cut some corners in the initial implementation, and any review/patches to improve it would be useful. David _______________________________________________ et-mgmt-tools mailing list et-mgmt-tools@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Cheers, Mike ________________________________________________ Mike MacCana Technical Specialist Linux Services IBM Global Services Level 14, 60 City Rd Southgate Vic 3000 Phone: +61-3-8656-2138 Fax: +61-4-8656-2423 Email: mmaccana@xxxxxxxxxxx |
_______________________________________________ et-mgmt-tools mailing list et-mgmt-tools@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/et-mgmt-tools