设为首页 收藏本站
查看: 2314|回复: 1

[经验分享] SaltStack实践(一)-- 安装配置HAproxy

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-30 10:01:53 | 显示全部楼层 |阅读模式
1、编写功能模块

        1)首先编写依赖安装模块   

[iyunv@linux-node1 ~]# mkdir -p /srv/salt/prod/pkg /srv/salt/prod/haproxy /srv/salt/prod/haproxy/files
[iyunv@linux-node1 pkg]# vim pkg-init.sls
pkg-init:
pkg.installed:
   - names:
     - gcc
     - gcc-c++
     - glibc
     - make
     - autoconf
     - openssl
     - openssl-devel

      

        2)编写HAproxy状态模块

        

        如何写状态模块?1、安装一遍,将安装步骤记录;2、将配置文件,启动文件等cp到/srv/salt/prod/*/files下


            a)获取启动脚本,并copy到/srv/salt/prod/haproxy/files/

[iyunv@linux-node1 ~]# mv haproxy-1.6.2.tar.gz  /srv/salt/prod/haproxy/files/

[iyunv@linux-node1 ~]# cd /srv/salt/prod/haproxy/files/
[iyunv@linux-node1 files]# tar zxf haproxy-1.6.2.tar.gz

[iyunv@linux-node1 files]# cd haproxy-1.6.2/examples/
[iyunv@linux-node1 examples]# vim haproxy.init
35 BIN=/usr/local/haporxy/sbin/$BASENAME

[iyunv@linux-node1 examples]# cp haproxy.init  /srv/salt/prod/haproxy/files/

[iyunv@linux-node1 examples]# cd /srv/salt/prod/haproxy/files

[iyunv@linux-node1 files]# rm -rf haproxy-1.6.2


        b)编写install.sls


        不在这里写配置文件,是为了解耦。因为安装和启动时原子操作,在哪都必须,但是配置文件,在不同环境下是不一样的

[iyunv@linux-node1 examples]# cd /srv/salt/prod/haproxy/
[iyunv@linux-node1 haproxy]# vim install.sls   
include:
- pkg.pkg-init
haproxy-install:   
file.managed:   
   - name: /usr/local/src/haproxy-1.6.2.tar.gz
   - source: salt://haproxy/files/haproxy-1.6.2.tar.gz
   - user: root
   - group: root
   - mode: 755
cmd.run:        
   - name: cd /usr/local/src && tar zxf haproxy-1.6.2.tar.gz && cd haproxy-1.6.2 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
   - unless: test -d /usr/local/haproxy   
   - require:   
     - pkg: pkg-init
     - file: haproxy-install  
/etc/init.d/haproxy:  
file.managed:
   - source: salt://haproxy/files/haproxy.init
   - user: root
   - group: root
   - mode: 755
   - require:
     - cmd: haproxy-install
cmd.run:
   - name: chkconfig --add haproxy
   - unless: chkconfig --list | grep haproxy
   - require:
     - file: /etc/init.d/haproxy
net.ipv4.ip_nonlocal_bind:
sysctl.present:
   - value: 1
haproxy-config-dir:
file.directory:
   - name: /etc/haproxy
   - user: root
   - group: root
   - mode: 755


[iyunv@linux-node1 src]# salt 'linux-node1.*' state.sls haproxy.install env=prod
linux-node1.example.com:
----------
......

Summary
-------------
Succeeded: 13 (changed=3)
Failed:     0
-------------
Total states run:     13



    2、编写业务引用 - HAproxy配置文件


[iyunv@linux-node1 files]# mkdir -p /srv/salt/prod/cluster/files
[iyunv@linux-node1 files]# cd /srv/salt/prod/cluster/files/   
[iyunv@linux-node1 files]# vim 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
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
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
server web-node1  10.0.0.7:8080 check inter 2000 rise 30 fall 15   #
server web-node2  10.0.0.8:8080 check inter 2000 rise 30 fall 15
[iyunv@linux-node1 files]#cd ..
[iyunv@linux-node1 cluster]# vim haproxy-outside.sls
include:
- haproxy.install
haproxy-service:
file.managed:
   - name: /etc/haproxy/haproxy.cfg
   - source: salt://cluster/files/haproxy-outside.cfg
   - user: root
   - group: root
   - mode: 644
service.running:
   - name: haproxy
   - enable: True
   - reload: True
   - require:
     - cmd: haproxy-init
   - watch:
     - file: haproxy-service
[iyunv@linux-node1 ~]# cd /srv/salt/base/
[iyunv@linux-node1 base]# vim top.sls
base:
'*':
   - init.env_init
prod:
'linux-node[1-2].example.com':
   - cluster.haproxy-outside
[iyunv@linux-node1 base]# salt '*' state.highstate
linux-node1.example.com:
----------
......

Summary
-------------
Succeeded: 21 (unchanged=2, changed=1)
Failed:     0
-------------
Total states run:     21
linux-node2.example.com:
----------
......  
Summary
-------------
Succeeded: 21 (unchanged=9, changed=3)
Failed:     0
-------------
Total states run:     21


3、Web查看服务状态

    从web登陆10.0.0.7:8888/haproxy-status,用户名和密码在/srv/salt/prod/cluster/files/haproxy-outside.cfg中

[iyunv@linux-node1 base]# grep 'auth' /srv/salt/prod/cluster/files/haproxy-outside.cfg
stats auth    haproxy:saltstack

wKiom1ZYZUOCad4oAAsFTvhdwJA940.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145240-1-1.html 上篇帖子: saltstack实现中小型架构的搭建 下篇帖子: SaltStack(一)-- SaltStack介绍及CentOS 6.7安装SaltStack

尚未签到

发表于 2015-12-3 13:33:38 | 显示全部楼层
为啥 我的客户端起不来啊 服务端手动能起来 客户端起不来 配置文件一模一样的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表