dns 自动化管理平台

又一次开发DNS管理平台,去年开发过两个版本。来到新公司,又来了这样的需求。好吧~  那就再开发一个版本。

去年第一个版本底层是bind,给予文件管理,这样管理起来比较复杂,而且每次发布持续时间特别长。第二个版本使用bind dlz,给予数据库管理,稳定性太差。所以这次底层改为powerDns,也是给予数据库管理,经过测试稳定性挺好,就是首次查询效率和bind相比略慢。pdns也支持Cache,当第二次查询的时候,速度基本和bind不差上下。

这里就不多介绍Pdns了,如果想了解,可以查看pdns 官方手册。dns管理平台大概拓扑如下:

             > 通过DNS 管理平台管理domain、record等记录,将数据写入到DB Server

> 当Client 查询record时,Pdns  Server 从DB Server 获取数据,如果没有记录,使用pdns-recursor 模块,forward到根服务器,进行递归查询。

DNS管理平台主要由以下组件开发完成:

后端语言:python  Django

数据库: Mysql

前端语言:jquery、Ajax、bootstrap

Web服务器:Nginx、 Uwsgi

第三方组件:

平台大概功能介绍:

  1. 用户管理:给予django-auth-ldap模块和Ldap集成,实现用户登入验证。用户权限管理,是通过平台自身完成。

  2. domain 和record 管理:实现对domain和record记录的增删改查。DB数据结构就是更改PDNS 官方提供的Domain和record表。我还增加了一张record_type表。

Domain 展示

                       record 展示

3. 日志管理:主要记录Domain和record操作的过程记录下来。

4.用户管理:对用户权限管理,权限这一块儿做的比较简单。后期再进行更改吧~

有了DNS 平台,就不用每次更新记录时苦逼咧咧登入到每台机器上去修改了(也有很多开源的自动化工具也可以实现~)。

使用dig可以看一下pdns和bind的性能:

pdns:

第一次查询大概用了3msec时间,第二次是从Cache中直接获取的0msec。

bind查询:第一次用时1msec,第二次用时0msec。

pdns在dig 查询时没有AUTHORITY SECTION记录,不知大家是否有注意。

源代码这周整理一下会放到github上,还请大家多指正。

时间: 2024-08-07 12:31:02

dns 自动化管理平台的相关文章

集中化管理平台saltstack——自动化实现apache的安装与配置

what-saltstack 1>是一个服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能. 2>使用Python开发,部署简单,主从集中化管理,支持API和自定义模块. 3>由Master和Minion构成(基于证书验证),通过轻量级消息队列ZeroMQ进行通信. how-saltstack Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口: salt客户端程序不监听端口,客户端启动

4、python自动化运维——集中化管理平台Saltstack

集中化管理平台--Saltstack Saltstck作为服务器基础架构集中化管理平台,具备配置管理,远程执行,监控等功能.可以简单地理解为简化版的puppet,加强版的func.废话不多说,直接上手. Saltstack安装以及配置 安装所需要的组件 主控端:salt-master被控端:salt-minion 安装过程 1.安装所需要的epel作为部署saltstack的yum源:yum install -y epel 2.安装salt-master/salt-minionyum insta

5、python自动化运维——集中化管理平台Ansible

集中化管理平台Ansible 简介:Ansible是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台特点:1.部署简单,只需在主控端部署Ansible环境,被控端不用进行任何操作2.默认使用SSH协议对设备进行管理3.主从集中化管理4.提供一个Web管理界面和RESET API接口--AWX平台 Ansible安装及配置 1.安装ansible:yum install –y ansible 2.修改配置文件:/etc/ansible/hosts,添加主机IP. 193.192.168

自动化管理工具puppet

Linux之puppet puppet简介 puppet是一套IT基础设施自动化管理工具,可以管理其整个生命周期,其官方网站:www.puppetlabs.org.其作者Luke Kanies成立了puppetLabs,于2005年发布0.2版本.puppet基于ruby语言研发,puppet有声明性.基于模型的配置语言,其也有自己的配置编程言. puppet的优势 基于master/agent的认证机制 不依赖于客户端系统的管理权限 可实现配置自动推送给客户端 puppet的版本 0.2 0.

混合云管理平台ManageIQ系列(一)——简介

云计算--曾经只是概念上的东西,公有云.私有云.混合云,各种云满天飞.现如今,云已经不再只停留在概念上,它已经在业界各个大小厂商的共同努力下逐渐落地.当云由概念变为现实以后,我们就面临着如何更有效的管理和使用这个庞然大物的问题. 管理方面,各个云计算厂商都有自己的管理平台,可以实现对各自平台的管理,如VMware的vCenter.但是,随着企业的发展,公司可能同时使用多种云平台,如同时使用VMware.RHEV.EC2,私有云加公有云组成了混合云,此时,我们如何统一管理这个混合云呢?这时候就需要

开源Java自动化部署平台JDeploy

JDeploy是Java + Shell实现的基于Linux系统的自动化.可视化的项目部署平台,能部署Java服务.Java Web项目,可以简化项目部署操作,无需繁琐的黑窗口SSH指令及Jenkins复杂的配置. 传统部署方式:从SVN/GIT服务器检出代码->在IDE中打包->将包传到服务器->SSH连上服务器->敲指令启动/停止 JDeploy部署:创建项目->一键部署/启动/停止 * 检出代码.打包.启动.停止等操作通过Shell脚本自动执行. 下载:http://d

测试管理平台大比拼

测试管理平台很多,在选择时也会想那个好用那个适合自己,在腾讯云tmq团队的分析下,为大家带来测试平台的综合评价. 作者:solinazhao 简介 测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题,比如缺陷管理.用例管理.测试任务管理等. 目前市面上比较流行的测试管理工具有QC. Mantis. BugZilla.TestLink.Redmine等.有开源软件,也有商业软件.这些软件的各自侧重点不同:比如Mantis.BugZilla偏重缺陷管理,TestLi

智能时代 企业自动化管理升级

新经济环境下,随着众多创业公司如雨后春笋般拔地而起,许多企业开始有了危机意识,纷纷拓展业务,引进更多企业资源,以便在竞争激烈的市场中站稳脚跟,赢得更广阔的发展空间.随着业务扩张和发展,企业对自动化管理的需求越来越大,比如客户关系管理.项目管理.采购管理.日常办公管理等等,如果能够通过信息化技术进行自动管理,不但减少人力资源支出,而且各项业务管理也更清晰有序,提高工作效率.通过企业自动化管理,企业在内部管理和外部业务拓展方面将得到更进一步的发展.对此,企业应用管理软件成了企业向自动化管理转型的利器

关于自动化部署平台的尝试

前言 参加过两次公司生产环境的版本更新,最近一次让我萌生了开发一个自动化部署平台的念头.虽然网上也有不少的自动化部署软件,但还是想自己动手写一个.一来是为了让平台更适应当前的实际情况,也利于以后自己对平台通用性的扩展:二来是为了锻炼自己,给自己的空闲时间找点事情做,不至于虚度时光. 以下是整理出的初稿,想到的点比较简单,后面会持续完善. 如果本文有幸被您看到,望能指点一二. 不管是积极的还是消极的,请留下您的看法. 背景 程序开发好之后免不了部署.刚开始还好,手动打包.上传.部署,也不需要多长时