Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

onlyOneJack/Bind-Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

28 Commits

Repository files navigation

Bind-DLZ + Django + Mysql DNS管理平台

系统环境:CentOS 6.5 X64

软件版本:

 bind-9.9.5.tar.gz 
 mysql-5.6.16.tar.gz
 Python 2.7.6 
 Django 1.11.x

描述: 数据库安装就不在絮叨,了解运维的同学都应该知道

一.源码安装配置Bind:

1.源码编译安装

 tar -zxvf bind-9.9.5.tar.gz #解压压缩包
 cd bind-9.9.5
 ./configure --prefix=/usr/local/bind/ \
 --enable-threads=no \
 --enable-newstats \
 --with-dlz-mysql \
 --disable-openssl-version-check
 
 #官网说明强调编译关闭多线程,即--enable-threads=no
 
 make
 make install #源码编译安装完成

2.环境变量配置

cat >> /etc/profile <<EOF 
PATH=$PATH:/usr/local/bind/bin:/usr/local/bind/sbin
export PATH
EOF
 source /etc/profile #重新加载一下环境变量
 named -v #如下图,说明环境变量正常

3.用户添加授权目录

 useradd -s /sbin/nologin named
 chown -R named:named /usr/local/bind/

4.配置Bind 注意: bind 的数据库即是 管理平台使用的数据库,这里配置的库名和,后面管理平台的数据库名一样

vi /usr/local/bind/etc/named.conf

	options {
			directory "/usr/local/bind/";
			version "bind-9.9.9";
			listen-on port 53 { any; };
			allow-query-cache { any; };
			listen-on-v6 port 53 { ::1; };
			allow-query { any; };
			recursion yes; 
			dnssec-enable yes;
			dnssec-validation yes;
			dnssec-lookaside auto;
	};
	 
	 
	key "rndc-key" {
			algorithm hmac-md5;
			secret "C4Fg6OGjJipHKfgUWcAh+g==";
	};
	 
	controls {
			inet 127.0.0.1 port 953
					allow { 127.0.0.1; } keys { "rndc-key"; };
	};
	 
	 
	view "ours_domain" {
			match-clients {any; };
			allow-query-cache {any; };
			allow-recursion {any; };
			allow-transfer {any; };
	 
			dlz "Mysql zone" {
					database "mysql
					{host=127.0.0.1 dbname=devops1 ssl=false port=3306 user=root pass=123456}
					{select zone from dns_records where zone='$zone$'}
					{select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"') when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum) else data end from dns_records where zone = '$zone$' and host = '$record$'}"; 
			};
			zone "." IN {
				type hint;
				file "/usr/local/bind/etc/named.ca";
			};
	 
	};

保存退出

5.生成 name.ca文件

(demo) -bash-4.1# cd /usr/local/bind/etc/
(demo) -bash-4.1# dig -t NS . >named.ca

二.配置Bind-Web 管理平台

1.克隆管理平台

(demo) -bash-4.1# git clone https://github.com/1032231418/Bind-Web.git #git 克隆下来
(demo) -bash-4.1# cd Bind-Web

2.安装Django框架

(demo) -bash-4.1# pip instal -r requirement.txt

3.数据库配置:

 1.) CREATE DATABASE devops1 CHARACTER SET utf8 COLLATE utf8_general_ci; #创建数据库
	
 2.)配置文件devops/settings 里连接数据库
	
			DATABASES = {
				'default': {
					'ENGINE': 'django.db.backends.mysql',
					'NAME':'devops1',
					'USER': 'root',
					'PASSWORD': '123456',
					'HOST': '127.0.0.1',
					'PORT':'3306',
				}
			}
			
 3.)表结构刷到数据库
			 python manage.py makemigrations

image

			 python manage.py migrate		

image

 4.)创建管理用户
	
			 (env) [root@pyvm devops]# python manage.py createsuperuser 

image

 5.)运行项目
	
			 (env) [root@pyvm devops]# python manage.py runserver 0.0.0.0:8001

http://ip/8001 访问WEB 界面 登录账户就是创建的管理用户

image

image

image

image

三.启动Bind服务并设置开机启动脚本

1.启动 Bind 服务并设置开机启动脚本

(demo) -bash-4.1# /usr/local/bind/sbin/named

2.监控系统日志:

 tail -f /var/log/messages

3.如下,说明服务启动正常

测试bind连接数据库是否正常:

4.设置 Bind 开机启动脚本

bind 本文档会附带,传到服务器 /etc/init.d/ 目录
(demo) -bash-4.1# chmod 755 /etc/init.d/bind 
(demo) -bash-4.1# #mkdir /var/run/named/ && chown named:named -R /var/run/named 
杀掉 named 服务,改用脚本启动
(demo) -bash-4.1# pkill named
(demo) -bash-4.1# /etc/init.d/bind start #监控日志,查看启动状态
(demo) -bash-4.1# chkconfig --add bind #加入开机启动

tail -f /var/log/messages

About

Bind-DLZ + Django + Mysql DNS管理平台

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /