Skip to content

startUpdater

LostSymbol edited this page Jan 28, 2019 · 7 revisions

updater启动

准备

新增主机组

页面导航: 配置管理 --> 主机管理 --> 新增主机组

说明

  • 主机组名称以MasterSlave结尾
  • 所有主机名或者ip不能重复

命令行配置导入

$ export FLASK_APP=dnsdb_command.py
$ export FLASK_ENV=beta
named.conf导入
$ flask import-named-conf --group_name Master --file_path /usr/local/etc/named.conf
# 参数
# 	group_name: 主机组名称
# 	file_path: named.conf文件位置
# 文件格式
# 	所有的zone配置放在文件末尾
导入要管理的zone

如果是刚创建的bind服务可以跳过这一步,直接进行下一步。

将要在DNSDB中管理的zone的解析库文件放在一个文件夹中,按下面的命令导入: 文件名称要和文件内容中**$ORIGIN**定义的zone相同, 比如:

$ head named.local
$ORIGIN named.local.
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1       IN      PTR     localhost.
$ flask import-zone-records --zone_dir /usr/local/var/named --zone_group Master --user username
# 参数
# 	zone_dir: 包含zone文件的目录
# 	zone_group: zone所属主机组
# 	user: 操作者
# 文件格式
# 	zone文件中代表serial_num的一行必须是如下格式:
#        '3000000026  ; Serial'
# 文件夹中不要包含反解zone
定制zone解析库文件模版
$ vim etc/template/zone_header

# 文件内容
$TTL 7200   ; 2 hours
@       IN SOA  localhost. root.localhost. (
            pre_serial  ; Serial
            3600            ; Refresh (1 hour)
            900             ; Retry (15 minutes)
            3600000         ; Expire (5 weeks 6 days 16 hours)
            3600            ; Minimum (1 hour)
            )
@   2D  IN  NS  localhost.
$ORIGIN zone_name.

文件末尾行 $ORIGIN zone_name. 不要做任何变动。NS服务器的相关配置请根据自己情况修改。

之后在DNSDB中新加zone时,zone的解析库文件将直接根据此文件生成。

反解文件生成工具
$ cp tools/updater/mkrdns /sbin/mkrdns
$ chmod +x /sbin/mkrdns

配置

配置文件: etc/beta/dnsdb-updater.conf

[etc]
; 临时文件位置
tmp_dir=/usr/local/open-dnsdb/tmp
log_dir = /var/log/open-dnsdb
; 备份文件位置
backup_dir=/usr/local/backup
pidfile=/usr/local/open-dnsdb/tmp/named_updater.pid
; 时间间隔,检查是否有需要更新的zone解析
zone_update_interval = 5
allow_ip = 127.0.0.1

[log]
log-file = dnsdb_updater.log

[web]
port = 9000

[gunicorn]
bind = 0.0.0.0:9000

[bind_default]
;bind相关文件目录
named_dir = /var/named/chroot/etc
zone_dir = /var/named/chroot/var/named
acl_dir = /var/named/chroot/var/named
;bind相关命令
named_checkconf = /usr/sbin/named-checkconf
named_zonecheck = /usr/sbin/named-checkzone
;反解文件生成工具
mkrdns = /sbin/mkrdns
rndc = /usr/sbin/rndc

; 可选配置, 当主机组的配置和bind_default有差异时,配置差异项
[Master]
named_dir = /Users/guoliluo/qunar/var/named/chroot/etc
zone_dir = /Users/guoliluo/qunar/var/named/chroot/var/named

重点关注下 [bind_default]中的内容,根据自己的实际情况更改下。

程序启动

open-dnsdb程序必须先启动,因为updater会调用它的接口去读获取当前主机所在的主机组。

open-dnsdb-conf-updater: 更新named.conf、访问控制列表文件
open-dnsdb-zone-updater: 更新zone解析库文件

Slave结尾的主机组中的主机open-dnsdb-zone-updater程序无法启动,因为bind的slave服务器zone解析库文件和master去同步。

$ cp etc/beta/supervisor-updater.conf /etc/supervisor/conf.d/open-dnsdb-updater.conf
$ supervisord -c /etc/supervisord.conf
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> status
open-dnsdb                       RUNNING   pid 89500, uptime 0:00:06
open-dnsdb-conf-updater          RUNNING   pid 89499, uptime 0:00:06
open-dnsdb-zone-updater          RUNNING   pid 89501, uptime 0:00:06
Clone this wiki locally