fix: prefer RHEL paths in BIND path detection to avoid ambiguity
之前的探测顺序优先 Debian 路径 (/etc/bind/named.conf.local), 在某些混合/历史场景下会选错:当两个 named.conf.local 都存在时 (RHEL 默认 /etc/named.conf.local + 之前手动 touch 的 /etc/bind/named.conf.local), named 实际只读其中一个,但代码会写到另一个,导致 zone 写出来了 但 named 不加载。 调整候选顺序,把 RHEL 路径(/etc/named.conf.local、/etc/named.conf) 放在 Debian 路径前面: BIND_CONF_LOCAL: /etc/named.conf.local -> /etc/bind/named.conf.local BIND_CONF_OPTIONS: /etc/named.conf -> /etc/bind/named.conf.options Dev 环境(Debian)行为不变(/etc/bind/named.conf.options 和 /etc/bind/named.conf.local 实际存在,依然命中 Debian 路径)。 README '配置 BIND' 一节明确两套发行版的差异,并强调 named 主配置 必须 include 对应的 named.conf.local 文件,否则 zone 文件存在但 named 不会加载。
This commit is contained in:
@@ -31,11 +31,17 @@ db = SQLAlchemy(app)
|
||||
# 自动探测按"哪个目录/文件存在就用谁"在常见路径里回退,覆盖 Debian/Ubuntu、
|
||||
# RHEL/CentOS/Rocky、AlmaLinux、FreeBSD 等发行版默认布局;如有特殊安装路径,
|
||||
# 可用环境变量强制指定。
|
||||
#
|
||||
# 注意 BIND_CONF_LOCAL 的探测顺序:/etc/named.conf.local 优先于
|
||||
# /etc/bind/named.conf.local —— 因为 RHEL/CentOS 的 /etc/named.conf 默认
|
||||
# include 的是 /etc/named.conf.local,而 Debian/Ubuntu 默认 include 的是
|
||||
# /etc/bind/named.conf.local。优先探测 RHEL 路径可以避免"两边文件都存在但
|
||||
# named 只读其中一份"的歧义场景。
|
||||
_BIND_PATH_CANDIDATES = {
|
||||
"BIND_CONF_DIR": ["/etc/bind", "/etc", "/etc/named"],
|
||||
"BIND_ZONES_DIR": ["/etc/bind/zones", "/var/named", "/var/named/data"],
|
||||
"BIND_CONF_LOCAL": ["/etc/bind/named.conf.local", "/etc/named.conf.local"],
|
||||
"BIND_CONF_OPTIONS": ["/etc/bind/named.conf.options", "/etc/named.conf"],
|
||||
"BIND_CONF_LOCAL": ["/etc/named.conf.local", "/etc/bind/named.conf.local"],
|
||||
"BIND_CONF_OPTIONS": ["/etc/named.conf", "/etc/bind/named.conf.options"],
|
||||
"BIND_RNDC_KEY": ["/etc/bind/rndc.key", "/etc/rndc.key", "/var/named/key"],
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user