yum install -y pssh
两台虚拟机都需要编辑hosts文件
分别写入node01、node02的ip 和主机名
生成免密登录,就可以无需密码直接登陆node01和node02
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@node02-tz
pssh -h host-list.txt -i 'yum install pacemaker pcs -y'
pssh -h host-list.txt -i 'systemctl enable --now pcsd'
设置cluster的账号密码
pssh -h host-list.txt -i 'echo 123456 | passwd --stdin hacluster'
pssh -h host-list.txt -i 'firewall-cmd --add-service=high-availability --permanent'
添加服务
pssh -h host-list.txt -i 'firewall-cmd --reload'
加载防火墙
pcs cluster auth node01-tz node02-tz
pcs cluster setup --name tz-cluster node01-tz node02-tz
pcs cluster start –all
pcs cluster enable --all
pcs status cluster
两台节点需要安装httpd服务,不需要启动
pssh -h host-list.txt -i 'yum install httpd -y'
vim /etc/httpd/conf.d/server_status.conf
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Require local
</Location>
并写入一个测试页面到/var/www/html/index.html
[root@node01-tz ~]# pcs property set stonith-enabled=false <==关闭 stonith 功能
[root@node01-tz ~]# pcs property set no-quorum policy=ignore <==忽略仲裁
[root@node01-tz ~]# pcs property set default-resource-stickiness="INFINITY" <==设置资源超 时时间
[root@node01-tz ~]# pcs property list<==显示设定
pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.123.111 cidr_netmask=24 op monitor interval=30s <==设定 VIP
pcs status resources <==显示资源信息
添加 httpd 资源:
pcs resource create Web123-Cluster ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://127.0.0.1/server-status" op monitor interval=1min
[root@node01-tz ~]# pcs constraint colocation add Web123-Cluster with VIP INFINITY
[root@node01-tz ~]# pcs constraint order VIP then Web123-Cluster <==设定启动顺讯:先启动 VIP 在启动 WEB123-Cluster
pcs constraint <==显示资源情况
停止 ndoe1 节点的 httpd 资源,客户端再测试:
pcs cluster stop node01-tz
就自动切换到了node02上
firewall-cmd --add-port=2224/tcp --permanent
firewall-cmd --reload
访问https://192.168.123.111:2224
①80端口占用查询:
netstat -tlnp|grep 80
杀死已经存在的80端口服务
Kill -9 进程号
firewall-cmd --zone=public
--add-port=80/tcp --permanent ###添加80端口
Firewall-cmd --reload ###重载防火墙
②ssh密钥生成信息只能存在一个,需要手动添加到本机与对方的auth开头文件和konw文件中>>>>>/root/.ssh/
]]>先备份配置文件
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
然后进行设置新的配置
vim /etc/haproxy/haproxy.cfg
global <== 全局配置
log 127.0.0.1 local2 info <==定义收集的日志信息及日志设备
chroot /var/lib/haproxy pidfile /var/run/haproxy.pid
maxconn 256 <==最大连接数
user haproxy <==定义 haproxy 的属主
group haproxy <==定义 harpoxy 属组
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http <==定义运行模式为 http--Layer7 工作模式
log global
option httplog <==获取 http 的 request 日志
timeout connect 10s <==后台服务超时时间
timeout client 30s <==客户端超时时间
timeout server 30s <==Server 超时时间
frontend http-in <==定义前台服务名称为 http-in
bind *:80 <==定义 http-in 所监听的端口
default_backend backend_servers <==定义后台服务名称
option forwardfor <==发送 X-Forwarded-For 头部信息
backend backend_servers <==定义后台服务名称为 backend_server
balance roundrobin <==定义负载均衡算法为 roundrobin
server web01.tao.com 192.168.1.24:80 check <==定义负载均衡算法为 roundrobin
server web02.tao.com 192.168.23.25:80 check <==定义负载均衡算法为 roundrobin
修改httpd.conf
vim /etc/httpd/conf/httpd.conf //* 修改 196 行,如下面内容
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
cd /etc/pki/tls/certs
openssl req -x509 -nodes -newkey rsa:2048 -keyout \ /etc/pki/tls/certs/haproxy.pem -out /etc/pki/tls/certs/haproxy.pem \ -days 365
运行后如下图: