Keepalived + HAProxy- 基础配置.note
·准备环境:

在 前面 haproxy的基础上,将haproxy克隆,只需要更改ip地址即可
一、基础配置 Keepalived:
apt install -y keepalived1、配置 Keepalived:
如果要再 Keepalived中配置多个虚拟IP,那么只需要修改 virtual_router_id 即可,让他们不相同就能配置多个了
(1)配置 Master:
cd /etc/keepalived/
cp keepalived.conf.sample keepalived.conf
vim /etc/keepalived.conf虚拟IP一定要加上掩码,否则会变成 /32 位的

(2)配置 Backup:
cd /etc/keepalived/
cp keepalived.conf.sample keepalived.conf
vim /etc/keepalived.conf
# 将优先级调低(比Master低)
(3)在 Master 上查看虚拟IP(此时虚拟IP应该出现在优先级高的设备上):
ip a
可以看到此时该接口下有两个IP,一个是该接口本身的IP地址,一个是虚拟出的虚拟IP地址
(4)而此时 Backup 上是没有虚拟IP的:
ip a
(5)手动关闭 Master 上的 Keepalived,查看 Backup 是否有了 虚拟IP地址:
Master:
systemctl stop keepalived
Backup:
ip a可以看到,此时Backup上已经出现了虚拟IP

(6)在其它机器上进行 ping测试:
无论虚拟IP在 Master上,还是 Backup上,都是应该能够ping通的

二、配置 Keepalived 检测 HAProxy状态,以达到自动切换:
刚刚上面配置的是需要手动进行切换,接下来将配置通过 track 检测,进行自动切换:
1、配置 Master:
(1)复制模板:
vim /usr/share/doc/keepalived/samples/keepalived.conf.vrrp.localcheck
·随便复制一个模板:

(2)配置 Keepalived:
vim /etc/keepalived/keepalived.conf
# 将其复制并稍加修改注意:vrrp_script 定义的名称不要有大写,测试时发现无法读取到大写名称

重启服务
2、配置 Backup:
(1)将 Master 的配置 复制道 Backup上,再稍作修改:
Master:
scp /etc/keepalived/keepalived.conf root@192.168.20.253:/etc/keepalived/keepalived.conf
Backup:
# 将优先级改为99:
重启服务
3、进行 故障转移抢占 测试:
(1)stop关闭 Master检测的 HAProxy,查看是否自动切换:
Master:
systemctl stop haproxy
# 等待5秒
ip a
# 此时虚拟IP应该消失不见了
Backup:
# 等待几秒时间
ip a切换成功!

(2)在客户端上进行访问:

4、进行 故障转移恢复 测试:
(1)将 Master 监听的 HAProxy 服务重新启用,查看是否恢复回来:
Master:
systemctl start haproxy
# 等待几秒
ip a
Backup:
ip a
# 此时 Backup 上应该没有了 虚拟IP
(2)在 客户端上进行访问网页:
可以发现,该切换对于客户端来说是无感的,顶多有一点延迟

三、使用 Ansible 配置 集群:
1、配置 Ansible 基础连接:
(1)配置 本机不检测 ssh指纹:
vim /etc/ssh/ssh_config
apt install -y ansible python3 python3-passlib
mkdir /etc/ansible/playbook -p
mkdir /etc/ansible/file
touch /etc/ansible/ansible.cfg
touch /etc/ansible/hosts(2)配置 ansible配置文件:
vim /etc/ansible/ansible.cfg
(3)编写 hosts 文件:
vim /etc/ansible/hosts
2、先在 被控端上配置好 服务,然后 scp 传到Ansible主控端上:
(1)Web:
scp /etc/nginx/sites-enabled/default root@192.168.10.30:/etc/ansible/file(2)CA:
scp ~/newcert.pem root@192.168.10.30:/etc/ansible/file
scp ~/newkey.pem root@192.168.10.30:/etc/ansible/file
scp ~/demoCA/cacert.pem root@192.168.10.30:/etc/ansible/file/ca.crt(3)HAProxy:
scp /etc/haproxy/haproxy.cfg root@192.168.10.30:/etc/ansible/file(4)Master-Keepalived:
scp /etc/keepalived/keepalived.conf root@192.168.10.30:/etc/ansible/file/Master-keepalived.conf(5)Backup-Keepalived:
scp /etc/keepalived/keepalived.conf root@192.168.10.30:/etc/ansible/file/Backup-keepalived.conf3、编写 Ansible 剧本:
vim 01-Web.yml