• Stars
    star
    416
  • Rank 104,068 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

OpenDnsdb

项目主页

OpenDnsdb 项目相关文档: 文档链接

简介

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/

    ; 日志目录配置: etc/beta/common.conf
    [log]
    log-dir = /var/log/open_dnsdb/
  • 切换到项目目录: cd open_dnsdb

  • 初始化项目python环境:

    $ python tools/install_venv.py -p /usr/bin/python3.6
    # 命令行参数:
    # 	-p 使用的python解释器版本, 确保使用virtualenv创建虚拟环境是python3.6+
    #		如果确认virtualenv命令是用python3安装的, 这个参数可以省略
  • 启用虚拟环境

     $ source .venv/bin/activate
     $ python -V 	# 确认python版本为3.6+
  • 初始化数据库

    • 数据库配置: etc/beta/common.conf
      [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

      [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+

感谢

感谢以下同学对项目修改提出的宝贵建议:

More Repositories

1

bistoury

Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
Java
4,023
star
2

qmq

QMQ是去哪儿网内部广泛使用的消息中间件,自2012年诞生以来在去哪儿网所有业务场景中广泛的应用,包括跟交易息息相关的订单场景; 也包括报价搜索等高吞吐量场景。
Java
2,803
star
3

qconfig

Qconfig中心式配置中心,提供高可用的配置托管/动态热更新服务。 具备丰富的格式支持和简单易用的API
Java
280
star
4

ic

去哪儿公司内部CI、CD以及devops体系建设过程中使用的消息系统和数据中心。由于其基于HTTP协议的特性,具有跨平台、跨语言的优点。而devops体系搭建中,会引入各种开源工具,这些工具的语言差异也很大。基于IC,我们不仅快速实现了流程自动化,而且系统解耦,自动化进程大大提高。
Java
86
star
5

imsdk-android

Startalk is a high-performace IM software for business. It has been stably used in Qunar for more than 4 years, providing services as well as consultation after and before sales to business. Startalk is applicable to multiple scenarios, such as office automation, business services, and first-party SDKs for IM scenes
Java
65
star
6

qrn-remax-unir

JavaScript
44
star
7

qapm_ios

QAPM是去哪儿使用的APP监控系统。已在内部稳定运行3年。
Objective-C
34
star
8

startalk_web

JavaScript
33
star
9

startalk_pc_v2

提供IM通讯能力的PC客户端服务( 包含Windows、Linux、MacOS )
C
31
star
10

open_source_startalk

提供IM通讯能力的Window客户端服务
C++
31
star
11

chaika

chaika 是去哪儿网小程序工程化中的拆库合并工具, 合并之后的代码可用nanachi直接转译为各平台小程序代码
JavaScript
30
star
12

imsdk-ios

Startalk is a high-performace IM software for business. It has been stably used in Qunar for more than 4 years, providing services as well as consultation after and before sales to business. Startalk is applicable to multiple scenarios, such as office automation, business services, and first-party SDKs for IM scenes
Objective-C
30
star
13

superoa

QOA系统后端服务,通过动化管理各项审批,QOA实现高效办公以及提升审批效率。
Java
17
star
14

schnee-ui

运用于nanachi的H5,快应用的补丁组件
JavaScript
14
star
15

m_adr_qapm_open_source

Java
10
star
16

qscan

QScan 是一个高度可定制的扫码工具,基于 Appium 的扫码方案,可灵活配置
HTML
10
star
17

qrn-remax-unir-demo

JavaScript
8
star
18

libqimkit-ios-cook

Ruby
6
star
19

ourimg_open

图片素材库系统
PHP
5
star
20

qimrn

JavaScript
5
star
21

qtalk_oa_qzz

QOA系统前端页面,通过动化管理各项审批,QOA实现高效办公以及提升审批效率。
JavaScript
4
star
22

startalk_web_sdk

JavaScript
4
star
23

libqimuikit-ios

Objective-C
4
star
24

m_adr_qapm_plugin

Groovy
3
star
25

libqimcommon-ios

Objective-C
3
star
26

libqimgeneralmodule-ios

Objective-C
2
star
27

fe_qunarchat_web

提供IM咨询服务web端能力。支持发送文本、图片、表情、文件等。消息实现 客人->店铺->客服 之间的通信
JavaScript
2
star
28

fe_qwebchat_admin

webchat 前端
JavaScript
1
star
29

libqimdatabase-ios

Objective-C
1
star