qunarcorp / open_dnsdb

OpenDnsdb 是去哪儿网OPS团队开源的基于Python语言的DNS管理系统

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mkrdns did not return success

shutdownslz opened this issue · comments

问题描述
(fatal) Can't open /usr/local/open_dnsdb/tmp/usr/local/named/data/test.com:No such file or directory at /sbin/mkrdns line 436.

环境配置

复现步骤
1./sbin/mkrdns -rootdir /usr/local/open_dnsdb/tmp /usr/local/named/named.conf -debug
2.
3.

实际输出结果
[root@localhost open_dnsdb]# /sbin/mkrdns -rootdir /usr/local/open_dnsdb/tmp /usr/local/named/named.conf -debug
Debugging turned on.
Version = 3.3
C. Revision = $Id: mkrdns,v 1.59 2002/12/05 21:19:28 felicity Stab $
Help = 0
Quiet Mode = 0
Root Dir = /usr/local/open_dnsdb/tmp
Hash Func = 32-bit checksum

(debug) Include statement (include "/etc/named/rndc.key";) found.
(debug) Path changed from "/etc/named/rndc.key" to "/usr/local/open_dnsdb/tmp/etc/named/rndc.key".
(debug) Including file /usr/local/open_dnsdb/tmp/etc/named/rndc.key.
(debug) Named Directory = /usr/local/named/data
(debug) Read in /usr/local/named/named.conf.
(debug) Path changed from "/usr/local/named/data/test.com" to "/usr/local/open_dnsdb/tmp/usr/local/named/data/test.com".
(debug) Domain "test.com", View "default", File "/usr/local/open_dnsdb/tmp/usr/local/named/data/test.com", Type "master".
(debug) Path changed from "/usr/local/named/data/baidu.com" to "/usr/local/open_dnsdb/tmp/usr/local/named/data/baidu.com".
(debug) Domain "baidu.com", View "default", File "/usr/local/open_dnsdb/tmp/usr/local/named/data/baidu.com", Type "master".
(debug) Reading in entries from /usr/local/open_dnsdb/tmp/usr/local/named/data/test.com for domain test.com, view default.
(fatal) Can't open /usr/local/open_dnsdb/tmp/usr/local/named/data/test.com:No such file or directory at /sbin/mkrdns line 436.

期望输出结果
tmp_dir=/usr/local/open_dnsdb/tmp
named.conf 中directory 配置是/usr/local/named/data
为什么mkrdns会去找这个文件呢?压根没有这个文件。
我看函数_copy_named_files(文件:dns_updater/workers/zone_worker.py)中会将bind director目录中的文件都拷贝到 tmp_dir + var/named 目录中。是我哪里配置的有问题吗?

你的配置应该没有问题, /sbin/mkrdns这个脚本本身的行为问题, 脚本默认zone文件的位置是
-rootdir目录 + named.conf文件中directory参数

看的你复现输出有一行:
Named Directory = /usr/local/named/data
这个目录就是named.conf文件中配置的

建议:
修改 _copy_named_files(文件:dns_updater/workers/zone_worker.py)文件拷贝的位置:
tmp = os.path.join(TMP_DIR, 'var/named') 修改为
tmp = os.path.join(TMP_DIR, 'usr/local/named/data')

多谢!!