软件环境:centos6.5
一、下载rpm包
首先找一台联网的centos6.5机器
安装epel扩展源:
yum install -y epel-release
安装yum-plugin-downloadonly:
yum install yum-plugin-downloadonly
安装完就可以使用yum只下载不安装功能了
yum install --downloadonly --downloaddir=*** -y ***
downloadonly:只下载模式;downloaddir:指定下载目录;-y后面是要安装的软件(会下载下来该软件的rpm包及相关依赖包)
创建createrepo文件夹(用于配置本地yum源):
cd /opt/mkdir createrepo
下载createrepo相关软件包:
yum install --downloadonly --downloaddir=/opt/createrepo/ -y createrepo
在/opt/下创建rpm文件夹:
mkdir rpm
下载heartbeat、libnet、nginx包 :
yum install --downloadonly --downloaddir=/opt/rpm/ -y heartbeat* libnet* nginx
截图是一部分
二、配置本地yum源
进入到createrepo文件夹下:
cd /opt/createrepo/
按照如上顺序安装createrepo:
rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpmrpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
安装 libxml2-2.7.6-21.el6_8.1.x86_64.rpm 时 报如下错误:
说明包有冲突,把原来的包卸载:
yum -y remove libxml2-2.7.6-14.el6.x86_64
竟然报错!可能要卸载的依赖项包含yum或正在被yum使用,无法卸载
只卸载 libxml2-2.7.6-14.el6.x86_64,忽略依赖项,使用“–nodeps”参数
rpm -e --nodeps libxml2-2.7.6-14.el6.x86_64
然后继续安装:
rpm -ivh libxml2-2.7.6-21.el6_8.1.x86_64.rpmrpm -ivh libxml2-python-2.7.6-21.el6_8.1.x86_64.rpmrpm -ivh createrepo-0.9.9-27.el6_9.noarch.rpm
安装成功后创建yum仓库:
createrepo /opt/rpm/
修改repo文件:
cd /etc/yum.repos.d/
创建repo_backup目录,然后将所有文件剪切到此目录:
mkdir repo_backupmv *.repo ./repo_backup
拷贝cp CentOS-Media.repo :
cp ./repo_backup/CentOS-Media.repo ./
修改该文件:
原文件
修改后
初始化yum缓存:
yum clean allyum makecache
yum repolist
本地仓库搭建完毕。
三、本地安装
主副节点都要安装
yum -y install heartbeat*
发现并未安装成功:
GPG密钥存在的目的是处于安全和规范考虑,RedHat在发布软件包的时候会根据软件包生成对应密钥,当用户安装软件包的时候会根据密钥校验软件包。yum安装的时候就会校验软件包是否是官方发布的。
可以给yum添加--nogpgcheck来强制安装或者在将源码包加入到仓库中的时候可以提前检验一下源码包的官方性:rpm -K *.rpm
检测完成后安装:
yum -y install heartbeat*yum -y install libnet*yum -y install nginx --nogpgcheck
安装成功。
四、配置heartbeat
拷贝配置文件:
cd /usr/share/doc/heartbeat-3.0.4/cp authkeys ha.cf haresources /etc/ha.d/cd /etc/ha.d/
修改authkeys:
vim authkeys
修改权限:
chmod 600 authkeys
编辑haresources文件:
vim haresources
在最后一行加入:
其中master为主节点hostname,192.168.60.200为vip,/24为掩码为24的网段,eth0:0为vip的设备名,nginx为heartbeat监控的服务(/usr/sbin目录下的)。
编辑ha.cf修改如下:
debugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 60udpport 694ucast eth0 192.168.60.137auto_failback onnode masternode slaveping 192.168.60.200respawn hacluster /usr/lib64/heartbeat/ipfail
配置说明:
debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息。
logfile /var/log/ha-log:heartbeat的日志文件。keepalive 2:心跳的时间间隔,默认时间单位为秒s。deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。udpport 694:设置广播通信使用的端口,694为默认使用的端口号。ucast eth0 192.168.60.137:设置对方机器心跳检测的网卡和IP。auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。ping 192.168.60.200:设置的VIP。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。把主节点的配置文件拷到从节点:
scp authkeys ha.cf haresources slave:/etc/ha.d/
编辑从节点的ha.cf文件:
vi /etc/ha.d/ha.cf
修改:ucast eth0 192.168.60.139
五、启动heartbeat服务
先master启动,后slave启动
service heartbeat start
查看ip是否绑定:
ip add