环境:系统: Centos7namedmanager Master: 172.16.0.181 dns181.ers.localnamedmanager Slave: 172.16.0.182 dns182.ers.localMysql 双主: 172.16.0.181, 172.16.0.182 (跟namedmanager 装在一起)keepalived: 172.16.0.181, 172.16.0.182
环境:
系统: Centos7
namedmanager Master: 172.16.0.181 dns181.ers.local
namedmanager Slave: 172.16.0.182 dns182.ers.local
Mysql 双主: 172.16.0.181, 172.16.0.182 (跟namedmanager 装在一起)
keepalived: 172.16.0.181, 172.16.0.182 (跟namedmanager 装在一起)
vip: 172.16.0.180 dns.ers.local
知识储备:
apache 的配置
bind 即是 named 服务dns的配置
mysql 的双主搭建
keepalived 高可用虚拟IP配置 (高可用文章最后简单补充说明)
一、主从架构
安装配置好 mysql 的双主架构,这里不详细展示安装配置过程 (留待使用)
两台机设置好FQDN
添加host解析
172.16.0.181 dns181.ers.local
172.16.0.182 dns182.ers.local
172.16.0.180 dns.ers.local
配置主 namedmanager: 172.16.0.181 节点:
1、安装 bind, php, apache, namedmanager-www, namedmanager-bind
# yum -y install epel-release bind bind-chroot httpd
# yum -y install php php-soap php-mysql php-intl php-xml php-cli php-soap php-intl
# wget -O /etc/yum.repos.d/jethrocarr-c7-public.repo http://repos.jethrocarr.com/config/centos/7/jethrocarr-c7-public.repo
# yum clean all && yum repolist
# yum -y install namedmanager-www namedmanager-bind
# vi /etc/named.conf
主要修改这几个参数,参数意思,这里不说明,没有的就添加,已有的就修改
options {
......
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
forwarders { 8.8.8.8; };
......
}
......
include "/etc/named.namedmanager.conf"
......
# chown root:named /etc/named.namedmanager.conf --> 授权组named权限,这个很重要
2、配置 namedmanager
设置 namedmanager的接口api地址信息
可根据实际情况自行修改
# vi /etc/namedmanager/config-bind.php
$config["api_url"] = "https://dns181.ers.local/namedmanager";
$config["api_server_name"] = "dns181.ers.local";
$config["api_auth_key"] = "123456"; // 自行设置
导入数据结构,执行完autoinstall.pl,会自动生成 namedmanager 的数据库,导入了数据结构数据,生成默认密码
# cd /usr/share/namedmanager/resources/
# ./autoinstall.pl
可根据实际情况自行修改 设置 namedmanager 连接数据库信息
我这里修改了数据库名,和数据库密码namedmanager181
新创建一个数据库名 namedmanager181, 在授权 namedmanager 用户权限,并导入namedmanager的数据库 (数据库导入导出这里不详细说明)
# vi /etc/namedmanager/config.php
$config["db_host"] = "172.16.0.181"; // hostname of the MySQL server
$config["db_name"] = "namedmanager181"; // database name
$config["db_user"] = "namedmanager"; // MySQL user
$config["db_pass"] = "abcdefg"; // MySQL password (if any)
3、修改 apache 配置
# vi /etc/httpd/conf/httpd.conf
ServerName dns181.ers.local
<Directory />
AllowOverride none
# Require all denied
</Directory>
# vi /etc/httpd/conf.d/namedmanager.conf
Alias /namedmanager /usr/share/namedmanager/htdocs
<Location /namedmanager>
Order allow,deny
Allow from all
AllowOverride None
Require all granted
</Location>
4、重启 httpd, mysql服务
# systemctl restart httpd
# systemctl restart mariadb
登录地址: https://dns181.ers.local/namedmanager 默认账号密码: setup / setup123
这里先不着急配置,先配置 从节点
配置从 namedmanager: 172.16.0.182 节点:
1、重复配置主节点的 步骤1 操作, 安装 bind, php, apache, namedmanager-www, namedmanager-bind
2、 设置 namedmanager的接口api地址信息
可根据实际情况自行修改,跟主节点一样
# vi /etc/namedmanager/config-bind.php
$config["api_url"] = "https://dns181.ers.local/namedmanager"; //这里保持为dns181.ers.local主节点的API
$config["api_server_name"] = "dns182.ers.local"; //这里设置为dns182.ers.local
$config["api_auth_key"] = "123456"; // 自行设置
这里无需执行autoinstall.pl,因为配置主节点的时候已经生成了数据库和导入了数据结构
设置 namedmanager 连接数据库信息
# vi /etc/namedmanager/config.php
$config["db_host"] = "172.16.0.182"; // 这里也可以设置为172.16.0.181,,因为mysql是双主数据库,所以都可以,只要数据库连接有权限
$config["db_name"] = "namedmanager181"; // database name
$config["db_user"] = "namedmanager"; // MySQL user
$config["db_pass"] = "abcdefg"; // MySQL password (if any)
3、修改 apache 配置
# vi /etc/httpd/conf/httpd.conf
# 这里将 ServerName 改为 dns182.ers.local
ServerName dns182.ers.local
<Directory />
AllowOverride none
# Require all denied
</Directory>
# vi /etc/httpd/conf.d/namedmanager.conf
Alias /namedmanager /usr/share/namedmanager/htdocs
<Location /namedmanager>
Order allow,deny
Allow from all
AllowOverride None
Require all granted
</Location>
4、重启 httpd, mysql服务
# systemctl restart httpd
# systemctl restart mariadb
登录地址: https://dns182.ers.local/namedmanager 默认账号密码: setup / setup123
至此完成 namedmanager 的主,从节点的服务配置,下面说明一下情况
现在有两个登录地址:
https://dns181.ers.local/namedmanager
https://dns182.ers.local/namedmanager
初始账号密码都是一样的,又因为两个节点连的数据库是同一个双主数据库,所以登录哪个地址都可以,设置的配置信息都会同步
接下来是 namedmanager web页面端配置:
1、浏览器打开地址 https://dns181.ers.local/namedmanager, 我选这个是因为毕竟这个是主节点嘛,哈哈。
打开之后会提示证书不信任的问题,没关系,我们直接继续浏览,一点都不影响我们使用
2、首先是添加一个管理员账号吧,添加好之后,删除默认的管理员账号 setup, 这个账号就不用了,英语不是太烂,都能看明白各项意思,这里不详细说明
3、设置 namedmanager 的接口配置,这里主要添加一个管理员的邮箱号码,随便填都可以,要邮箱格式
下面的 ADMIN_API_KEY 就一定要设置成自己设置的 key 值了
/etc/namedmanager/config-bind.php 在这个配置文件中定义的值 api_auth_key
设置好后要点击下面的 “ Save Changes” 保存配置
4、终于到添加域名解析服务器了,添加主节点DNS , dns181.ers.local
Primary Nameserver 选项要勾选
5、添加从节点,dns182.ers.local,Primary Nameserver 选项不要勾选即可, 两个节点一定要在同一个 “Nameserver Group”
6、最终效果如下, Zonefile status,Logging Status 两列一定要是绿色状态,否则也是失败的,如果一直都是橙色,表示同步是失败的
可以登录节点执行任务计划的语句来监测报什么错误
# php -q /usr/share/namedmanager/bind/namedmanager_bind_configwriter.php
# cd /usr/share/namedmanager/htdocs/include/cron/; php -q route53.php
7、来到最后的解析配置了,添加正向解析,反向解析
正向解析:
反向解析:
最终结果
8、添加 A 记录, 添加好之后,要一分钟左右时间才能生效,因为namedmanager 任务计划是每分钟执行一次
等待变绿之后,表示解析生效了,这时就可以去测试域名解析了
测试机器的DNS服务器设置为
DNS1=172.16.0.181
DNS2=172.16.0.182
接下来是 高可用的配置:
两台节点安装: keepalived
# yum -y install keeaplived
配置方法不详细说明,只说思路,部署配置方法网上搜一下就有
主节点设置 master, 从节点设置 backup
配置虚拟ip: 172.16.0.180
keepalived 添加检查 dns服务的脚本,当检查到dns服务异常的时候 VIP地址可以及时切换到另外一台节点
为什么我的拓补图最终的浏览器访问namedmanager 地址是: https://dns.ers.local/namedmanager
就是用了 VIP地址: 172.16.0.180
要支持用 dns.ers.local 域名访问,需要在 /etc/httpd/conf/http.conf 配置文件中添加 ServerName 支持
主节点:
ServerName dns181.ers.local,dns.ers.local
从节点:
ServerName dns182.ers.local,dns.ers.local
重启服务即可