Test Traffic Project
TTconfig
Overview
TTconfig addresses the problem of automated generation of
important configuration files and (state) management of testboxes:
- Generation of the ripe.net-tt zonefile for DNS
- Generation of 'LIST_OF_TESTBOXES', 'list_of_testboxes', GPSINFO, TTLIST, TTWATCH, TTONLINE, GROUPS
- Update testboxes of the new chain configuration
The configuration information should be put into a single file
config, and includes:
- testbox name
- status
- ID
- group
- Location
- IPs
- aliases
- contact
- coordinates
This SW saves administration time and is more accurate while preventing many human errors.
This is criticaly important for many parts of the project, like the DNS zonefile.
Description:
- The Makefile includes these build targets:
- config (default): Generation of local configuration files
- update: Generation of chain configuration, distribute and update cron
- dns: Generation of ripe.net-tt
- Inputs:
- config: line format is NAME:STATUS:UNIQUE ID:GROUP:WHERE:IPs list:DNS Alias(es):contact:GENE-coordinates
- Outputs:
- list_of_testboxes
- LIST_OF_TESTBOXES
- GPSINFO
- TT_DNS
- TTLIST
- TTWATCH
- TTONLINE
- GROUPS
- Output by poisson.input & distribute_config:
- Scripts used:
- ~/config/bin/config2DNS [fotis@ripe.net]
- ~/config/bin/config2GPSINFO [fotis@ripe.net]
- ~/config/bin/config2LIST [fotis@ripe.net]
- ~/config/bin/config2list [fotis@ripe.net]
- ~/source/poisson/poisson.input [Henk@ripe.net]
- ~/source/poisson/distribute_config.pl [Henk@ripe.net]
Usage & Examples:
Directory is ~/config
- Recreating configuration files, (eg location change):
- When adding a new testbox, update everything:
- make dns (~3mins)
- make update (~10mins)
- Changing a testbox state & distributing configuration file:
- Changing an IP address:
- vi config # update IP or LOC
- make dns # updates nameserver, too.
- make update # update chain, if machine is active (would be nice to change states ON -> OFF|SETUP -> ON)
Installation:
- Enter directory ~/source/config
- Type make install
- The installation is done in ~/config
Notes:
- Tested with BSDI, should run in any UNIX with standard shells/tools
- Currently the code is a set of bash scripts, and as a result it is not very fast.
When the project scales, the SW should be rewritten in perl, C or use a Database.
- The design is such that no other SW should access directly the config file,
but rather use the output configuration files. This structure,
will greatly help in modifying the file format and scripts, without problems
- Never, ever access ./config directly from a script:
Instead, use the current derivative configuration files, or we'll create another one.
Why? because config may become a database in the future.