在BIND中快速复制区域的方法

我们有一个标准的高可用性设置,在我们托pipe客户端程序的协同工厂。 对于某些程序,我们托pipeDNS,但是我发现手动设置多个区域可能很乏味,而且容易出错。 有没有简单的方法来设置一个标准的区域文件模板,以及如何运行sed,awk或其他程序来处理来自另一个文件的一组variables,并将它们与模板合并来创build区域文件?

我想过使用m4,但我不是很精通,它似乎只是一次合并一个模板的理想select。

理想情况下,我想要一个标准的区域文件模板,并将其与一个列表合并,如下所示:

域1 = IP1
域2 = IP2
DOMAIN3 = IP1
domain4 = IP1
等等…

有没有一种方法来编写脚本

我认为m4将是矫枉过正的。 我的第一本能是bash + sed,但是如果你对一个更高级的语言可能更容易一点熟悉。 关于我的头顶,我会想像这样的事情:

数据文件:

 example.com:192.168.10.1
 fake.com:192.168.10.2
 foo.com:192.168.10.3
 bar.com:192.168.10.4

脚本:

 #!/斌/庆典

 DATAFILE =数据文件
模板= template.txt

为$(cat $ DATAFILE)中的数据
做
     DOM = $ {数据%:*}
     IP = $ {数据#*:}
     sed“{s / DOMAIN / $ dom /;
            S / IPADDR / $ IP /;
          }“$ TEMPLATE> $ dom.zone
 DONE

而你的模板区域文件将在适当的地方有“DOMAIN”或“IPADDR”。

这是完全没有经过testing的,使用前应该加以改进。