实验环境
准备三台主机
master: 172.25.11.9 server9 rhel6.5 haproxy
minion: 172.25.11.10 server10 rhel6.5 httpd
minion: 172.25.11.8 server8 rhel6.5 nginx
server9:
配置yum源
[salt]
name=saltstack
baseurl=http://172.25.11.250/salt
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.11.250/rhel6.5/LoadBalancer
gpgcheck=0
安装salt-minion
yum install -y salt-minion
vim /etc/salt/minion
master: 172.25.11.9
salt-key -a server9
部署haproxy的安装并开启
haproxy-install:
pkg.installed:
- pkgs:
- haproxy
cd /srv/salt/
mkdir haproxy
cd haproxy/
mkdir files
cd files/
cp /etc/haproxy/haproxy.cfg .
更改haproxy的配置文件,实现高可用
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:80
default_backend app
backend app
balance roundrobin
server app1 172.25.11.10:80 check
server app2 172.25.11.8:80 check
vim install.sls
haproxy-install:
pkg.installed:
- pkgs:
- haproxy
file.managed:
- name: /etc/haproxy/haproxy.cfg
- source: salt://haproxy/files/haproxy.cfg
service.running:
- name: haproxy
- reload: True
- watch:
- file: haproxy-install
salt server9 state.sls haproxy.install
salt server? test.ping
salt '*' test.ping
salt server* test.ping
cd /srv/salt/
vim top.sls
base:
'server9':
- haproxy.install
'server10':
- httpd.install
'server8':
- nginx.service
salt '*' state.highstate # 高级推送
salt server10 grains.items # 查看server10的项
固定查看某一项
salt server10 grains.item os
salt server10 grains.item ipv4
更改master配置文件
vim top.sls
base:
'server9':
- haproxy.install
'roles:apache':
- match: grain
- httpd.install
'roles:nginx':
- match: grain
- nginx.service
salt '*' state.highstate
浏览器中查看是否高可用
输入:172.25.11.9