一键部署nginx负载均衡

先建立好httpd和nginx
在前两篇博客

[root@server1 ~]# yum install -y salt-minion
[root@server1 ~]# cd /etc/salt
[root@server1 salt]# vim minion
 16 master: 172.25.40.1
[root@server1 salt]# /etc/init.d/salt-minion start
[root@server1 salt]# salt-key -L
[root@server1 salt]# salt-key -A server1

这里写图片描述

[root@server1 salt]# vim /etc/yum.repos.d/rhel-source.repo  #添加负载均衡yum源
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.40.250/rhel6.5/LoadBalancer
gpgcheck=0
[root@server1 salt]# cd /srv/salt/
[root@server1 salt]# mkdir haproxy
[root@server1 salt]# cd haproxy/
[root@server1 haproxy]# 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
[root@server1 salt]# salt server1 state.sls haproxy.install

将脚本写完后推送时有报错:
这里写图片描述
解决方法:

[root@server1 salt]# cd /etc/haproxy
[root@server1 haproxy]# mkdir /srv/salt/haproxy/files
[root@server1 haproxy]# cp haproxy.cfg /srv/salt/haproxy/files/
[root@server1 haproxy]# salt server1 state.sls haproxy.install   #再次推送

这里写图片描述

[root@server1 haproxy]# cd /srv/salt/haproxy/files/
[root@server1 files]# vim haproxy.cfg 

这里写图片描述

[root@server1 files]# /etc/init.d/haproxy restart
[root@server1 files]# netstat -antlp

这里写图片描述

将server2端口改为80

[root@server1 salt]# vim httpd/files/httpd.conf 
 136 Listen 80
在server2上写入默认发布目录
[root@server2 ~]# cd /var/www/html
[root@server2 html]# vim index.html
server2

推送负载均衡

[root@server1 files]# cd /srv/salt/
[root@server1 salt]# cd haproxy/
[root@server1 haproxy]# cd /srv/salt/
[root@server1 salt]# vim top.sls
base:
  'server1':
    - haproxy.install
  'server2':
    - httpd.install
  'server3':
    - nginx.service
[root@server1 salt]# salt '*' state.highstate

测试:

这里写图片描述
这里写图片描述


Gains

[root@server2 ~]# /etc/init.d/httpd stop
[root@server2 ~]# vim /etc/salt/minion
120 grains:
121   roles:
122     - apache
[root@server2 ~]# /etc/init.d/salt-minion restart

【server1】

[root@server1 ~]# salt '*' grains.item roles

这里写图片描述
【server3】

[root@server3 ~]# vim /etc/salt/grains
roles:
  nginx

【server1】

[root@server1 ~]# salt server3 saltutil.sync_grains
server3:
[root@server1 ~]# salt '*' grains.item roles

这里写图片描述

[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# vim top.sls 
base:
  'server1':
    - haproxy.install
  'roles:apache':
    - match:  grain
    - httpd.install
  'roles:nginx':
    - match:  grain
    - nginx.service
[root@server1 salt]# salt '*' grains.item roles
[root@server1 salt]# salt '*' state.highstate

这里写图片描述

[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# mkdir _grains
[root@server1 salt]# cd _grains/
[root@server1 _grains]# vim my_grains.py
#!/usr/bin/env python
def my_grains():
        grains = {}
        grains['hello'] = 'world'
        grains['salt'] = 'stack'
        return grains
[root@server1 _grains]# salt server2 saltutil.sync_grains

这里写图片描述

root@server2 ~]# cd /var/cache/salt
[root@server2 salt]# ls
[root@server2 salt]# tree minion/

这里写图片描述

[root@server1 _grains]# salt '*' grains.item hello
[root@server1 _grains]# salt '*' grains.item salt

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Argued_D/article/details/81777776