Linux自动化运维——SaltStack实现haproxy负载均衡
文章目录
实验环境
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.66.1 | 服务端 salt-master |
server2 | 172.25.66.2 | 客户端 salt-minion |
server3 | 172.25.66.3 | 客户端 salt-minion |
注:三台主机已经配置好master及minion的环境,创建好默认数据配置目录,并且编写好了apache和nginx自动安装部署脚本。
实验操作
1.添加多节点推送
1.1 添加top.sls文件,定义运行环境以及所需文件
cd /srv/salt/
vim top.sls
base: #运行环境
'server2':
- nginx.service #nginx的部署文件
'server3':
- apache.install #apache的安装文件
注:需要将apache目录中的apache.sls改为install.sls
1.2 执行top.sls文件
salt '*' state.highstate #指全局的所有环境,以及所有状态都生效。读取每一个环境的top.sls,并且对所有sls都生效。
2.部署haproxy
2.1 添加install.sls 文件
cd /srv/salt/
mkdir haproxy
cd haproxy
vim install.sls
haproxy-install: #安装
pkg.installed:
- name: haproxy
file.managed:
- name: /etc/haproxy/haproxy.cfg
- source: salt://haproxy/files/haproxy.cfg
service.running: #启动
- name: haproxy
- reload: true
- watch:
- file: haproxy-install
2.2 添加haproxy.cfg文件
2.2.1 在server1安装haproxy,并拷贝配置文件
cd /srv/salt/haproxy
mkdir files
yum install -y haproxy
cp /etc/haproxy/haproxy.cfg /srv/salt/haproxy/files
2.2.2 配置haproxy.cfg
3.添加代理主机(server4)
在server4:
配置yum源,并安装salt-minion。将server4加入到server1的salt-master组内。
3.1 编辑/etc/salt/minion文件
3.2 重启服务
3.3 接受密钥
在server1:
salt-key -L #查看
salt-key -A #添加
4.修改top.sls文件,添加haproxy代理主机
cd /srv/salt/
vim top.sls
base:
'server2':
- nginx.service
'server3':
- apache.install
'server4':
- haproxy.install
5.执行top.sls文件
salt '*' state.highstate
6.测试
6.1 在浏览器访问 172.25.66.4/status(查看检测情况)
注:此时应关闭防火墙
6.2 关闭server2上的nginx服务
6.3 再次访问 172.25.66.4/status (刷新)
salt '*' state.highstate