本实验是在上一个实验《云计算自动化运维——SaltStack编写sls文件实现nginx自动编译安装》基础上进行的,已经配置好master及minion的环境,创建好默认数据配置目录,并且编写好了apache和nginx自动安装部署脚本。
附apache自动安装文件所在博客链接:云计算自动化运维——SaltStack详解
附nginx自动安装文件所在博客链接:云计算自动化运维——SaltStack实现nginx自动编译安装
SaltStack多节点推送实现haproxy负载均衡集群
实验环境:
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.1.1 | 服务端 salt-master |
server2 | 172.25.1.2 | 客户端 salt-minion |
server3 | 172.25.1.3 | 客户端 salt-minion |
实验:
1、top指定多节点推送
编写top.sls 文件,top.sls定义了运行环境以及需要运行的sls
base:
'server2':
- nginx.service
'server3':
- apache.install
步骤一:我在这里将之前编写的apache目录下的自动安装文件修改一下名称,方便理解。
步骤二:编辑top.sls 文件
步骤三:运行
salt '*' state.highstate
state.highstate: 这个是全局的所有环境,以及所有状态都生效。它会读取每一个环境的top.sls,并且对所有sls都生效。
2、编写haproxy自动安装
步骤一:在/srv/salt目录下创建haproxy目录,编写haproxy/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
步骤二:创建haproxy/files目录。在server1主机上安装haproxy,生成配置文件并将其拷贝到files目录中
步骤三:修改配置文件haproxy.cfg
步骤四:创建一台主机server4用做haproxy代理
配置yum源,并下载salt-minion,将其加入salt-master组内
修改/etc/salt/minion文件:
重启服务:
在server1上接收server4密钥:
步骤五:编写top.sls文件,多节点推送
base:
'server2':
- nginx.service
'server3':
- apache.install
'server4':
- haproxy.install
步骤六:运行top.sls文件
salt '*' state.highstate
步骤七:运行
步骤八:测试
关闭server2上的nginx服务
查看haproxy监测情况: