一.准备
1. 机器
test03 10.0.0.232
test04 10.0.0.233(主)
二.工具安装
1.安装Heartbeat
Heartbeat:管理虚拟ip的高可用和服务
安装步骤:
apt-get install drbd8-utils heartbeat –y
启动Heartbeat服务并使其在启动时启动
systemctl start heartbeat
systemctl enable heartbeat
2.nfs安装
服务端
apt-get install -y nfs-kernel-server
vi /etc/exports
增加/home/super/jenkins0415 *(rw,no_root_squash,subtree_check)
service nfs-kernel-server restart
客户端
apt-get install -y nfs-common
三.配置
1. Heartbeat配置
1)主机上/usr/share/doc/heartbeat目录里找到ha.cf、haresources、authkeys三个文件,将其拷贝到/etc/ha.d/目录下(如果是gz文件,先进行解压 gzip *.gz –d .)
2)双机互信,配置免密登录,配置hosts文件
vim /etc/hosts
10.0.0.232 test03
10.0.0.233 test04
3)修改authkeys (auth 3 3 md5 Hello!)权限为600
内容如下
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
修改haresources(test04 10.0.0.239/24/ens160 testshell
这里的10.0.0.239是虚拟ip(指定一个不使用的ip)
修改ha.cf
debugfile /var/log/ha-debug #调试输出信息文件
logfile /var/log/ha-log #日志文件
logfacility local0
keepalive 2 #心跳包发送间隔
deadtime 30 #30秒检测不到对端认为对端已离线
warntime 10 #当对端离线10秒后发出警告
initdead 60 #系统重启过度时间
udpport 694
bcast ens160 #心跳包发送方式和路径
auto_failback on #主节点恢复正常自动重新接管
ucast ens160 10.0.0.232 #设置对方机器心跳检测的网卡和IP
node test04 #添加集群节点
node test03 #添加集群节点
auto_failback on
watchdog /dev/watchdog
ping 10.0.0.1
4)修改完成后,将修改好的文件拷到备机上,修改ucast ens160 10.0.0.232为ucast ens160 10.0.0.233(即对应为主机ip)
scp authkeys ha.cf haresources root@10.0.0.232:/etc/ha.d
2.修改启动脚本(这里需要LSB格式的,即传递参数start,stop,heartbeat中的testshell,放在路径 /etc/init.d下,脚本如下,可参照格式修改适配不同场景的使用)
四 使用
1. 启动
在主节点上运行service heartbeat start
2. 启动成功后,会自动将vip 10.0.0.232配置到linux系统的 ens160:X网卡上, inet addr:10.0.0.239
3. 会自动运行脚本testshell
4. 此时访问http:// 10.0.0.239:8083 /会出现应用页面,指向http:// 10.0.0.233: 8083 /
5. 模拟主节点挂掉:service heartbeat stop
6. 登录备节点,查看ifconfig,可以看到多了一个ens160:0
7. 此时访问http:// 10.0.0.239: 8083 /也会出现Jenkins页面,但是指向http:// 10.0.0.232: 8083 /,且http:// 10.0.0.233: 8083 /无法打开