zonemaker: Python DNS zone files

Introduction

This is zonemaker, a tool to generate DNS zone files from Python.

The plain zone file format is pretty limited. There are not even variables, so in many cases IP addresses and other data has to be repeated several times. zonemaker is an attempt to provide more flexibility, by allowing you to write your zones in Python. Hence all the usuel fatures, like variables, macros (also known as functions) and loops, are available to generate DNS zone data. At the same time, zonemaker is reasonably simple and close to the actual structure of a DNS zonefile, so it is suited for small setups. The output of zonemaker is a standard zonefile, it can be used with any DNS server supporting those.

Usage

Simply call zonemaker with the zone Python file as argument. The result will be printed to stdout. See db.example.com.py for a sample file demonstrating the use of the interface. Makefile.sample shows how a makefile which first updates the zone(s), and then tells BIND to reload, could look like.

Source, License

You can find the sources in the git repository (also available on GitHub). They are provided under a 2-clause BSD license. See the file LICENSE-BSD for more details.

Contact

If you found a bug, or want to leave a comment, please send me a mail.