去哪儿网开源DNS管理系统OpenDnsdb

2019 年 1 月 22 日 运维帮

项目主页

https://github.com/qunarcorp/open_dnsdb

简介

OpenDnsdb 是去哪儿网OPS团队开源的DNS管理系统,用于添加、修改、删除zones/records. 使用简单并可靠的方法管理View、ACL、网段等. 详尽的日志,便于审计.

OpenDnsdb并不是一个DNS服务器,而是一个对现有DNS服务器的管理系统,提供Web管理UI以及命令行工具等.

对OpenDnsdb的操作,会生成DNS配置文件并同步给DNS服务器。也就是说OpenDnsdb的故障或不可用并不会对DNS服务本身造成任何影响.

主要功能

  • 支持 Bind 9.

  • IP管理, 管理公司网段及ip,可以实现域名和ip的自动绑定

  • 域名管理, 域名的增、删、改、查.

  • View域名管理, view域名的增删改查、状态修改,view域名的迁移.

  • 配置管理, 管理zone文件,线上配置与数据库配置同步,修改配置自动完成部署.

  • 日志, 关键操作都有日志记录,并可通过页面进行查询,便于审查

  • 支持RESTful API, 支持Webhook.

  • 基于Python 2/3 开发, 支持Postgresql和SQLite.

应用结构

  • docs/ 各种说明文档、手册, copyright/license等.

  • dnsdb_fe/ web ui

  • script/ 同步脚本, 各种工具.

  • etc/ 开发、测试环境的配置文件, 配置模板等.

  • dnsdb_command.py 数据库初始脚本

  • dnsdb/constant 常量设置,用到的正则匹配规则

安装手册

  • 安装virtualenv: pip install virtualenv

  • 项目克隆

  • 切换到项目目录: cd open_dnsdb

  • 初始化项目python环境: python tools/install_venv.py

  • 启用虚拟环境 source .venv/bin/activate

  • 初始化数据库

    • export FLASK_APP=dnsdb_command.py

    • export FLASK_ENV=beta

    • flask deploy (生成测试账号: test)

  • 生成程序控制脚本: tools/with_venv.sh python setup.py install

  • 安装supervisor用于管理python进程:

    • 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

    • 安装: sudo pip install supervisor

    • 生成默认配置: echo_supervisord_conf > /etc/supervisord.conf

    • 修改配置文件 vim /etc/supervisord.conf

       [include]
       files = /etc/supervisor/conf.d/*.conf
    • mkdir -p /etc/supervisor/conf.d

    • 添加openDnsdb项目配配置:

    • 启动: supervisord -c /etc/supervisord.conf

    • 查看是否启动成功: ps aux | grep supervisord

    • supervisorctl -c /etc/supervisord.conf


登录查看更多
21

相关内容

域名系统(英文: Domain  Name  System, DNS)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
211+阅读 · 2020年2月21日
【Google AI】开源NoisyStudent:自监督图像分类
专知会员服务
54+阅读 · 2020年2月18日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Arxiv
3+阅读 · 2019年3月1日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
6+阅读 · 2018年4月23日
VIP会员
相关资讯
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员