1. 程式人生 > >saltstack自動化部署haproxy實現nginx的負載均衡

saltstack自動化部署haproxy實現nginx的負載均衡

實驗環境

準備三臺主機

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
這裡寫圖片描述
這裡寫圖片描述