8.saltstack配置管理-业务模块-haproxy

业务引用之Haproxy负载均衡的实现
=====================注意:真正服务器使用时不鞥有这些#号注稀或者空格、tab键。检测可以在vi 里面:set list来判断是否有空格==================先看过来    
Haproxy的安装我们选择源码包进行安装,我们通过文件管理模块进行haproxy的文件配置管理,需要将两个节点配置为负载均衡模式。

创建业务引用相关目录:

    业务引用我们都是在cluster目录下进行。
[root@salt-master ~]# mkdir /srv/salt/prod/cluster #用于存放集群相关文件
[root@salt-master ~]# mkdir /srv/salt/prod/cluster/files
[root@salt-master ~]# vi /srv/salt/prod/cluster/files/haproxy-outside.cfg #外网负载均衡配置文件
global
maxconn 100000
chroot /usr/local/haproxy
uid 99
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid
log 127.0.0.1 local3 info
 
#默认参数设置
defaults
option http-keep-alive
maxconn 100000
mode http
timeout connect 5000ms
timeout client  50000ms
timeout server 50000ms
 
#开启Haproxy Status状态监控,增加验证
listen stats
mode http
bind 0.0.0.0:8888
stats enable
stats uri     /haproxy-status
stats auth    haproxy:saltstack
 
#前端设置
frontend frontend_www_example_com
#bind 10.0.0.11:80
bind 192.168.91.100:80
mode http
option httplog
log global
    default_backend backend_www_example_com
#后端设置
backend backend_www_example_com
option forwardfor header X-REAL-IP
option httpchk HEAD / HTTP/1.0
#balance source如果想要轮训则改为roundrobin
balance roundrobin
server web-node1  192.168.91.134:8080 check inter 2000 rise 30 fall 15
server web-node2  192.168.91.133:8080 check inter 2000 rise 30 fall 15






编写haproxy的salt文件:(如果启动其它的服务业可以这样造搬)

    salt文件主要涉及到haproxy的安装引用、对配置文件的下发、haproxy的服务启动等功能。
[root@salt-master ~]# vi /srv/salt/prod/cluster/haproxy-outside.sls
include: #include haproxy的安装文件
  - haproxy.install
haproxy-service:  
  file.managed:  #将source执行的haproxy配置文件,存放到name指定路径下
    - name: /etc/haproxy/haproxy.cfg
    - source: salt://cluster/files/haproxy-outside.cfg
    - user:  root
    - group: root
    - mode: 644
  service.running:  #启动haproxy服务
    - name: haproxy
    - enable: True
    - reload: True   #允许reload服务
    - require:
      - cmd: haproxy-init #引用haproxy目录下install文件中的haproxy-init标签
    - watch:    #通过watch状态监控,如果配置文件发生改变 就reload
      - file: haproxy-service #haproxy-servcie标签下的file模块



注:此文件依赖于haproxy目录下的install.sls文件。


现在,可以编写top file文件,让其两个haproxy节点能够正常运行服务:
[root@salt-master ~]# cat /srv/salt/base/top.sls
base:
  '*':
    - init.env_init
prod:
  'salt-master.2018.com':
    - cluster.haproxy-outside
  'salt-minion.2018.com':
    - cluster.haproxy-outside

编写完top file文件可以,执行高级模式来执行salt文件:
[root@salt-master ~]# salt '*' state.highstate test=True  #测试
[root@salt-master ~]# salt '*' state.highstate

----------
          ID: haproxy-service
    Function: service.running
        Name: haproxy
      Result: True
     Comment: Service haproxy is already enabled, and is running
     Started: 14:51:10.446901
    Duration: 545.282 ms
     Changes:   
              ----------
              haproxy:
                  True

Summary
-------------
Succeeded: 21 (changed=2)
Failed:     0   <=================================================0个失败就是没有问题了
-------------
Total states run:     21

可以看到已经执行成功,成功21项状态。

现在,我们可以通过浏览器访问haproxy管理界面:

http://192.168.10.149:8888/haproxy-status
用户:haproxy  密码:saltstack

需要安装个8080服务作为测试,这里我安装httpd:
[root@salt-master ~]# salt '*' cmd.run 'yum -y install httpd'

在这里由于/var/www/html没有页面信息,健康检查会显示异常,所以需要在两个节点上创建html文件信息。
[root@salt-master ~]# echo ‘centos-test1’ > /var/www/html/index.html
[root@salt-minion ~]# echo ‘centos-test2’ > /var/www/html/index.html
然后修改httpd的端口为8080
略过

然后启动
[root@salt-master ~]# salt '*' cmd.run 'systemctl restart httpd'

然后就大功告成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值