[Serusers] New way to manage your configuration files: SER configuration build system
Greger V. Teigre
greger at teigre.com
Wed Apr 25 09:29:10 CEST 2007
SER's configuration files can be quite complex, both to understand as a
newcomer and to manage for experts. The challenge is to make getting
started easy, while keeping the power of the configuration language.
Thus, as an example, some would like to simplify ser.cfg so they can
use: if(nated) { fix_nating() } while others need a lot more control.
The SER - Getting Started configuration files and document quickly
became a starting point for newcomers. Also, as you normally modify and
add to your first configuration, the Getting Started files have formed
the basis for many configuration files in production.
We realized that updating and adding functionality to the Getting
Started configurations quickly became time-consuming. So, we needed a
better way of managing and improving these reference configurations.
The result of these needs is a new build system for SER configuration
files where you use a configure script to generate your basic
configurations and run make to create the ser.cfg configuration file.
Once you have run configure, you can edit some (simple) configuration
files to change how ser.cfg is created. You can also add code snippets
of your own.
In order to make this system something people can grow with (and
something experts would like to migrate their configs to), the build
system is built around a generic splitting of ser.cfg into smaller
pieces, so that different logical parts of your SER config can be
managed in separate files. In its simplest form, the build system is
just an empty structure of files you can use to manage your ser.cfg
code. In its most advanced form, you can use code from the Getting
Started files and add your own code and even modify the way things work
(this last part is not yet ready in the initial version of the build
system). The idea is that migration of your ser.cfg will become easier
if you use the build system.
Finally, a logging system has been included. It offers a powerful way to
unify your logging across your ser.cfg, as well as multiple ways of
controlling when logging is done (you can for example turn off logging
for a production server, both by removing logging code and by
dynamically turning it on and off).
Well, I think that's enough for an introduction. The announcement can be
found here:
http://www.iptel.org/finally_making_ser_accessible_to_newcomers_while_keeping_the_strength_of_its_configuration_language
while the build system documentation (and actual code until it gets into
CVS) can be found at:
http://iptel.org/ser/doc/buildsystem
Play with it, test it, and please send your comments, ideas, suggestions
to serdev or serusers!
g-)
More information about the sr-users
mailing list