[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