![](https://img.shields.io/github/release/qunarcorp/open_dnsdb.svg)
![](https://img.shields.io/github/license/qunarcorp/open_dnsdb.svg)
![](https://img.shields.io/github/languages/code-size/qunarcorp/open_dnsdb.svg)
# OpenDnsdb
## 项目主页
OpenDnsdb 项目相关文档: [文档链接](../../wikis/home)
## 简介
OpenDnsdb 是去哪儿网OPS团队开源的DNS管理系统,用于添加、修改、删除zones/records.
使用简单并可靠的方法管理View、ACL、网段等.
详尽的日志,便于审计.
OpenDnsdb并不是一个DNS服务器,而是一个对现有DNS服务器的管理系统,提供Web管理UI以及命令行工具等.
对OpenDnsdb的操作,会生成DNS配置文件并同步给DNS服务器。也就是说OpenDnsdb的故障或不可用并不会对DNS服务本身造成任何影响.
OpenDnsdb is an open source DNS management system for the OPS team. It is used to add, modify, and delete zones/records. Use simple and reliable methods to manage View, ACL, network segment, etc. Detailed logs for auditing.
OpenDnsdb is not a DNS server, but a management system for existing DNS servers, providing Web management UI and command line tools.
For OpenDnsdb operations, a DNS configuration file is generated and synchronized to the DNS server. That is to say, the failure or unavailability of OpenDnsdb does not affect the DNS service itself.
## 主要功能
* 支持 Bind 9.
* IP管理, 管理公司网段及ip,可以实现域名和ip的自动绑定
* 域名管理, 域名的增、删、改、查.
* View域名管理, view域名的增删改查、状态修改,view域名的迁移.
* 配置管理, 管理zone文件,线上配置与数据库配置同步,修改配置自动完成部署.
* 日志, 关键操作都有日志记录,并可通过页面进行查询,便于审查
* 支持RESTful API, 支持Webhook.
* 基于Python 3 开发, 支持Postgresql和SQLite.
## 应用结构
* docs/
各种说明文档、手册, copyright/license等.
* dnsdb_fe/
web ui
* tools/
同步脚本, 各种工具.
* etc/
开发、测试环境的配置文件, 配置模板等.
* dnsdb_command.py
数据库初始脚本
* dnsdb/constant
常量设置,用到的正则匹配规则
## 安装手册
* 环境 Python:3.6.8 pip:19.0.3
* 支持的浏览器: chrome, Firefox
* 安装virtualenv: `pip install virtualenv`
* 项目克隆
* 目录创建:`mkdir -p /var/log/open_dnsdb/`
```ini
; 日志目录配置: etc/beta/common.conf
[log]
log-dir = /var/log/open_dnsdb/
```
* 切换到项目目录: `cd open_dnsdb `
* 初始化项目python环境:
```bash
$ python tools/install_venv.py -p /usr/bin/python3.6
# 命令行参数:
# -p 使用的python解释器版本, 确保使用virtualenv创建虚拟环境是python3.6+
# 如果确认virtualenv命令是用python3安装的, 这个参数可以省略
```
* 启用虚拟环境
```bash
$ source .venv/bin/activate
$ python -V # 确认python版本为3.6+
```
* 初始化数据库
* 数据库配置: etc/beta/common.conf
```ini
[DB]
connection=sqlite:////usr/local/open_dnsdb/dnsdb.db
```
* touch /usr/local/open_dnsdb/dnsdb.db 新建数据文件
* export FLASK_APP=dnsdb_command.py
* export FLASK_ENV=beta
* flask deploy (生成测试账号: test 密码:123456)
* 生成程序控制脚本: tools/with_venv.sh python setup.py install
* 安装supervisor用于管理python进程:
* 安装: sudo pip install supervisor
```
# python3版本supervisor安装
pip install git+https://github.com/Supervisor/supervisor
```
* 生成默认配置: echo_supervisord_conf > /etc/supervisord.conf
* 修改配置文件 vim /etc/supervisord.conf
```ini
[supervisord]
childlogdir=/var/log/open_dnsdb ;日志文件位置
[include]
files = /etc/supervisor/conf.d/*.conf
```
* mkdir -p /etc/supervisor/conf.d
* 添加openDnsdb项目配配置:
* dnsdb: cp etc/beta/supervisor-dnsdb.conf /etc/supervisor/conf.d/open-dnsdb.conf
* updater(仅bind服务器需要): cp etc/beta/supervisor-updater.conf /etc/supervisor/conf.d/open-dnsdb-updater.conf
* 启动: supervisord -c /etc/supervisord.conf
* 查看是否启动成功: ps aux | grep supervisord
* supervisorctl -c /etc/supervisord.conf
## ChangeLog
* v0.2 - 2019-03-21
**添加**
添加ipv6支持(暂不支持ipv6反解)
**修改**
升级python版本,支持python3.6+
## 感谢
感谢以下同学对项目修改提出的宝贵建议:
* [wss434631143](https://github.com/wss434631143)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
开源的基于Python语言的DNS管理系统 (185个子文件)
.babelrc 312B
make.bat 787B
setup.cfg 641B
supervisor-updater.conf 670B
common.conf 636B
dnsdb-updater.conf 607B
dnsdb.conf 346B
supervisor-dnsdb.conf 300B
app.5137ea317b6c1209dd442cc030992313.css 218KB
style.css 1KB
.editorconfig 147B
fontawesome-webfont.674f50d.eot 162KB
.eslintignore 23B
.gitignore 366B
.gitkeep 0B
index.html 583B
index.html 292B
healthcheck.html 130B
healthcheck.html 123B
favicon.ico 1KB
favicon.ico 1KB
.!83443!favicon.ico 0B
.!83444!favicon.ico 0B
.!83441!favicon.ico 0B
.!83442!favicon.ico 0B
.!83440!favicon.ico 0B
vendor.35023790df232692a094.js 796KB
app.8f6318bdebfe230b5a3f.js 139KB
util.js 5KB
webpack.prod.conf.js 4KB
dev-server.js 2KB
utils.js 2KB
webpack.base.conf.js 2KB
index.js 2KB
manifest.cfdad16f39e54a963330.js 1KB
index.js 1KB
check-versions.js 1KB
webpack.dev.conf.js 1KB
build.js 953B
webpack.test.conf.js 830B
main.js 667B
.eslintrc.js 642B
view.js 488B
vue-loader.conf.js 413B
dev-client.js 245B
.postcssrc.js 197B
dev.env.js 139B
test.env.js 132B
prod.env.js 48B
package-lock.json 419KB
package.json 3KB
LICENSE 11KB
Makefile 581B
vendor.35023790df232692a094.js.map 5.93MB
app.8f6318bdebfe230b5a3f.js.map 801KB
app.5137ea317b6c1209dd442cc030992313.css.map 311KB
manifest.cfdad16f39e54a963330.js.map 14KB
README.md 5KB
CODE_OF_CONDUCT.md 3KB
bug_report.md 219B
mkrdns 39KB
IPy.py 57KB
view_record.py 25KB
log.py 22KB
zone_record.py 18KB
host_group_conf.py 15KB
dnsdb_command.py 12KB
view_migrate.py 11KB
updater_util.py 11KB
config.py 9KB
worker.py 7KB
flaskapp.py 7KB
record.py 7KB
view_isp_acl.py 6KB
decorators.py 6KB
install_venv_common.py 6KB
view_record.py 6KB
utils.py 6KB
param_validator.py 6KB
subnet_ip.py 6KB
deploy.py 5KB
operation_log.py 5KB
conf.py 5KB
view_isp.py 5KB
subnet.py 4KB
config.py 4KB
user.py 4KB
config.py 4KB
migrate.py 4KB
api.py 4KB
zone_worker.py 4KB
tool_classes.py 3KB
user.py 3KB
__init__.py 3KB
__init__.py 3KB
__init__.py 3KB
preview.py 3KB
view_worker.py 3KB
updater.py 2KB
database.py 2KB
共 185 条
- 1
- 2
资源评论
白话Learning
- 粉丝: 3331
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功