本实验是在上一个实验《SaltStack(2)—— SaltStack实现nginx自动编译安装》基础上进行的,已经配置好master及minion的环境,创建好默认数据配置目录,并且编写好了apache和nginx自动安装部署脚本。
上一篇博客链接:https://blog.csdn.net/dghfttgv/article/details/104893330
目录
一、SaltStack多节点推送实现haproxy负载均衡集群
(一)、部署集群
- 步骤一:创建实验目录
- 步骤二:编写配置模板
- 步骤三:编译、测试
(二)、在集群中添加server4后端
- 步骤一:在server4上部署相关服务
- 1、在servre4上配置阿里云yum源
- 2、下载salt-minion 服务
- 3、在 servre1上将认证
- 4、在server上安装httpd服务
- 5、在haproxy值配置文件的模板中添加server4后端主机
- 步骤二:测试
一、SaltStack多节点推送实现haproxy负载均衡集群
实验环境:
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.6.1 | 服务端 salt-master |
server2 | 172.25.6.2 | 客户端 salt-minion |
server3 | 172.25.6.3 | 客户端 salt-minion |
server3 | 172.25.6.4 | 客户端 salt-minion(中途添加) |
实验
(一)、部署集群
步骤一 :
创建实验目录
[root@server1 salt]# mkdir haproxy ##创建文件子目录
[root@server1 salt]#
[root@server1 salt]# cd haproxy/ ##进入实验环境中
[root@server1 haproxy]#
[root@server1 haproxy]# vim init.sls ##编辑sls文件
haproxy-install: ##安装haproxy软件
pkg.installed:
- name: haproxy
file.managed: ##配置haproxy的主配置模板
- name: /etc/haproxy/haproxy.cfg
- source: salt://haproxy/haproxy.cfg ##source源所在的位置
service.running: ##开启服务
- name: haproxy
- enable: True ##设置开机自启
- watch:
- file: haproxy-install
步骤二:
编写配置模板
[root@server1 ~]# vim /srv/salt/haproxy/haproxy.cfg ##编写配置未见模板
stats uri /status
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:80
default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend app
balance roundrobin
server server1 172.25.6.1:80 check
server server3 172.25.6.3:80 check
步骤三:
测试、编译
[root@server3 yum.repos.d]# scp salt-latest.repo server4:/etc/yum.repos.d/
1、编译:
[root@server3 yum.repos.d]# scp salt-latest.repo server4:/etc/yum.repos.d/
2、测试
server1[root@server2 ~]# curl server2
(二)、在集群中添加server4
步骤一 :
在server4上安装
1、配置阿里云镜像的网络源
将server3上的阿里云网络源复制至server下
[root@server3 yum.repos.d]# scp salt-latest.repo server4:/etc/yum.repos.d/
2、下载salt-minion 服务
[root@server4 ~]# yum install salt-minion -y ##下载salt-minion
[root@server4 ~]# systemctl start salt-minion ##开启salt-minion服务
[root@server4 ~]#
[root@server4 ~]# vim /etc/salt/minion ##编辑minion主配置文件
...
master: 172.25.6.1 ##添加master主机ip
...
[root@server4 ~]#
[root@server4 ~]# systemctl restart salt-minion.service ##重启minon服务
3、在 servre1上将认证
[root@server1 haproxy]# salt-key -A ##将密钥传给从节点
4、在server上安装httpd服务
[root@server1 apache]# salt server4 state.sls apache
5、在haproxy值配置文件的模板中添加server4后端主机
[root@server1 ~]# vim /srv/salt/haproxy/haproxy.cfg
6、重新编译
[root@server1 haproxy]# salt server2 state.sls haproxy
步骤二:
测试
[root@server2 ~]# curl server2
(server4已经加入了集群 )
在浏览器上 查看:http://172.25.6.2/status
将server1后端宕掉
[root@server1 ~]# systemctl stop httpd ##关闭server1服务的httpd服务
在浏览器上的监控画面中看到server1后端已经端开
总结:因为使用salt远程部署haproxy服务,所以在推送的各个从节上都必须安装有salt-minion服务 且必须和master节点相连
(注:在 进行实验部署时保证haproxy主机上的httpd或者nginx服务因为haproxy监听的是80端口如果开启服务会导致haproxy启动失败 !!)