ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

尝试搭建DNS管理平台

2021-04-10 22:34:15  阅读:151  来源: 互联网

标签:尝试 tar -- bind usr DNS mysql local 搭建


系统环境:CentOS 6.5 X64

软件版本:bind-9.9.5.tar.gz mysql-5.6.16.tar.gz Python 2.7.6 Django 1.11.x

1、安装编译源码所需的工具和库

yum install -y wget vim gcc gcc-c++ ncurses-devel perl 		
#cmake安装,从http://www.cmake.org下载源码并编译安装
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz 	
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap; make; make install
cd 
groupadd mysql												
#新增mysql用户组
useradd -r -g mysql mysql										
#新增mysql用户
mkdir -p /usr/local/mysql										
#新建mysql安装目录
mkdir -p /data/mysqldb											
#新建mysql数据库数据文件目录
wget http://dev.mysql.com/downloads/mysql/mysql-5.6.16.tar.gz		
#下载MySQL源码包并解压
tar -zxv -f mysql-5.6.16.tar.gz
#从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本
cd mysql-5.6.16												
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  
    -DDEFAULT_CHARSET=utf8 \  
    -DDEFAULT_COLLATION=utf8_general_ci \  
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \  
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \  
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \  
    -DMYSQL_DATADIR=/data/mysqldb \  
    -DMYSQL_TCP_PORT=3306 \  
    -DENABLE_DOWNLOADS=1 
make && make install											
#编译和安装源码
cd /usr/local/mysql
chown -R mysql:mysql .										
#修改mysql安装目录
cd /data/mysqldb								

chown -R mysql:mysql .										
#修改mysql数据库文件目录
cd /usr/local/mysql

scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb		
#初始化mysql数据库
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf			
#复制mysql服务启动配置文件
cp support-files/mysql.server /etc/init.d/mysqld						
#制mysql服务启动脚本及加入PATH路径
vim /etc/profile
    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
    export PATH
source /etc/profile
service mysqld start											
#启动mysql服务并加入开机自启动
chkconfig --level 35 mysqld on
netstat -tulnp | grep 3306										
#检查mysql服务是否启动
mysql -u root -p
SET PASSWORD = PASSWORD('123456');				    
#修改MySQL用户root的密码
/usr/local/mysql/bin/mysql_secure_installation

2、源码编译安装Bind:

wget https://ftp.isc.org/isc/bind/9.9.5/bind-9.9.5.tar.gz
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  										
#源码编译安装完成

3、环境变量:

cat >>  /etc/profile  <<EOF  PATH=$PATH:/usr/local/bind/bin:/usr/local/bind/sbin export  PATH EOF
source  /etc/profile  			
#重新加载一下环境变量 named -v           				
#(demo) -bash-4.1#BIND 9.9.5 (Extended Support Version),说明环境变量正常

4、用户添加授权目录:

useradd -s /sbin/nologin named
chown -R named:named /usr/local/bind/ 
#配置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"; 		
  }; 
};

#保存退出;
#生成name.ca文件:
(demo) -bash-4.1# cd /usr/local/bind/etc/
(demo) -bash-4.1# dig -t NS . >named.ca

5、配置Bind-Web管理平台

5.1、克隆管理平台文件

git clone https://github.com/1032231418/Bind-Web.git	
#把git克隆下来
cd Bind-Web

5.2、安装Django框架

pip install -r requirement.txt

5.3、配置数据库

CREATE DATABASE  devops1   CHARACTER SET utf8 COLLATE utf8_general_ci;  #创建数据库
#配置文件devops/settings 里连接数据库 		
DATABASES = { 			
	'default': { 				
		'ENGINE': 'django.db.backends.mysql', 				
		'NAME':'devops1', 				
		'USER': 'root', 				
		'PASSWORD': '123456', 				
		'HOST': '127.0.0.1', 				
		'PORT':'3306', 			
		} 		
}

5.4表结构刷到数据库

python  manage.py makemigrations
wget https://ftp.isc.org/isc/bind/9.9.5/bind-9.9.5.tar.gz
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

-DCMAKE_INSTALL_PREFIX=dir_name 设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 设置服务器的字符集。缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存储引擎选项: MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。 静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1 可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name 设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

rm CMakeCache.txt ##重新运行编译配置,需要删除CMakeCache.txt文件

6、遇到问题

问题:

Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).

解决:

修改/etc/my.cnf 中datadir , 指向正确的mysql数据库文件目录

问题:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决:

新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock

/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock

MySQL问题解决:-bash:mysql:command not found

因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,

系统在/usr/bin下面查此命令,所以找不到了

解决办法是:

ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可

标签:尝试,tar,--,bind,usr,DNS,mysql,local,搭建
来源: https://www.cnblogs.com/LiangZhiXiong/p/14642336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有