strict warning: Only variables should be passed by reference in /var/www/sites/ on line 126.

Released: Netomata Config Generator (NCG), version 0.10.1

I'm pleased to announce the release of Netomata Config Generator (NCG), version 0.10.1.

Netomata Config Generator (NCG) creates complete, ready-to-install config files for network devices and services from a common light-weight model of your network. Because these config files are generated programmatically (rather than by hand), and generated from a shared model (rather than being managed separately for each device or service), they are more likely to be consistent and complete, which makes your network more reliable, easier to troubleshoot, and easier to expand in both size and functionality.

The inputs to NCG are a model describing your network (neto and neto_table files), and templates (ncg files) for the config files of the various devices (routers, swiches, load balancers, firewalls, etc.) and services (SNMP, DNS, DHCP, etc.) that you want to generate config files for. From these inputs, NCG produces complete, consistent, ready-to-install config files for those devices and services.

For more information about Netomata and the philosophy behind NCG, see

New Features

Significant new features of this release include:

  • .neto file processing has been changed so that [% ... %] ERB template processing can be used on any line, not just in "key = value" assignments.
  • A new "<" header line directive has been added for .neto_table files, which is analogous to an include directive in a .neto file. This provides a convenient way to apply many lines of directives in .neto format to each line of data in the .neto_table file (sort of like a subroutine). For example, the following in a list of .neto_table header lines:
            < key filename [ ... ]
    tells ncg to process the .neto format file(s) named by "filename ..." in the context of "key". This is equivalent to the .neto format construct of
            key {
                include filename [ ... ]
  • Assigning a value of "-" (either via a "key = value" statement in a .neto file, or in a column of data in a .neto_table file) will cause a key to be deleted.
  • Several new utility methods have been added, to do things like manipulate netmasks in IP addresses and sort lists of interfaces into their "natural" order.

For a full list of changes, see the RELEASE_NOTES file, which is both within the release and available separately in the download section of the Netomata Config Generator (NCG) page.


NCG can be downloaded from the Netomata Config Generator (NCG) page.

NCG requires Ruby 1.8.6 (it may work under other versions, but hasn't been tested under other versions) and the "Facets" Ruby Gem. NCG should work just fine on pretty much any UNIX/Linux-based operating system which has Ruby 1.8.6 available. The REQUIREMENTS file (included in the distribution, or available via the "Files" section of the NCG page) details how to install the necessary prerequisites on a variety of different platforms.


Please see the Netomata Config Generator (NCG) program documentation pages.


NCG is released as free open source software under the GNU General Public License, version 3. Please see the Netomata Config Generator (NCG) License page for full details. If you would like to discuss alternative licensing terms, please email


The current release should definitely be considered experimental in nature. Commands and file formats are all subject to change, as we work out what paradigms work best and figure out how to get the most out of this tool. We'll try to limit future changes that break backwards compatibility, but we can't promise that at this stage; right now, we believe that it's more important to experiment with how best to build and use this tool, rather than to carve anything in stone.

To make an analogy to programming languages, this release is like the interpreter for a language that is so new that the standard libraries for the language haven't been developed yet. The basic language capability is there, but the functionality and leverage normally provided by standard libraries doesn't exist yet.

Join us!

Please download NCG, give it a try, and join the community that's working to make this a useful and valuable tool for improving the reliability and scalability of networks like yours!