准备环境
node1:192.168.217.149 (saltstack master)
node2:192.168.217.150(saltstack minion)
下载haproxy1.6.2.tar.gz
下载地址:http://www.haproxy.org/download/1.6/src/

在node1:192.168.217.149 (saltstack master)上操作配置模块

一、依赖安装模块
1、pkg.installed的路径相对于prod在/etc/salt/master中配置的相对路径

  1. mkdir /srv/salt/prod/
  2. mkdir /srv/salt/prod/haproxy/files -pv
  3. mkdir mkdir /srv/salt/prod/pkg/files -pv
  4. cd /srv/salt/prod/pkg

2、编写依赖包配置文件

vim pkg-init.sls

  1. vim pkg-init.sls
  2. pkg-init:
  3. pkg.installed:
  4. - names:
  5. - gcc
  6. - gcc-c++
  7. - glibc
  8. - make
  9. - autoconf
  10. - openssl
  11. - openssl-devel

二、编写HAproxy状态模块 

如何配置状态模块
手动编译安装一遍haproxy,记录安装步骤
1、haproxy编译安装

  1. yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel
  2. cd /usr/local/src
  3. tar -zxf haproxy-1.6.2.tar.gz
  4. make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy

2、将配置文件、启动文件复制到/srv/salt/prod/haproxy/files下

  1. step1
  2. mv haproxy-1.6.2.tar.gz /srv/salt/prod/haproxy/files/
  3. cd /srv/salt/prod/haproxy/files/
  4. tar zxf haproxy-1.6.2.tar.gz
  5. cd haproxy-1.6.2/examples/
  6. vim haproxy.init
  7. BIN=/usr/local/haporxy/sbin/$BASENAME
  8. step2
  9. cp haproxy.init /srv/salt/prod/haproxy/files/
  10. step3
  11. cd /srv/salt/prod/haproxy/files
  12. rm -rf haproxy-1.6.2

3、编写install.sls
此文件不写haproxy的配置文件,是为了解耦。因为安装和启动时原子操作,在哪都必须,但是配置文件,在不同环境下是不一样的

vim install.sls

  1. include:
  2. - pkg.pkg-init
  3.  
  4. haproxy-install:
  5. file.managed:
  6. - name: /usr/local/src/haproxy-1.6.2.tar.gz
  7. - source: salt://haproxy/files/haproxy-1.6.2.tar.gz
  8. - user: root
  9. - group: root
  10. - mode: 755
  11. cmd.run:
  12. - 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
  13. - unless: test -d /usr/local/haproxy
  14. - require:
  15. - pkg: pkg-init
  16. - file: haproxy-install
  17.  
  18. haproxy-init:
  19. file.managed:
  20. - name: /etc/init.d/haproxy
  21. - source: salt://haproxy/files/haproxy.init
  22. - user: root
  23. - group: root
  24. - mode: 755
  25. - require:
  26. - cmd: haproxy-install
  27. cmd.run:
  28. - name: chkconfig --add haproxy
  29. - unless: chkconfig --list | grep haproxy
  30. - require:
  31. - file: /etc/init.d/haproxy
  32.  
  33. net.ipv4.ip_nonlocal_bind:
  34. sysctl.present:
  35. - value: 1
  36.  
  37. haproxy-config-dir:
  38. file.directory:
  39. - name: /etc/haproxy
  40. - user: root
  41. - group: root
  42. - mode: 755

提示:
1、如果是拷贝配置文件,确保$符号和配置之间没有空格,不然执行会出错,vim下,使用set list命令可以查看
2、层级关系是2、4、6个空格
建议先执行测试然后再实际配置修改,命令如下:
# salt '*' state.sls haproxy.install env=prod test=True

三、编写业务引用

1、haproxy配置文件

  1. mkdir -p /srv/salt/prod/cluster/files
  2. cd /srv/salt/prod/cluster/files/

vim /srv/salt/prod/cluster/files/haproxy-outside.cfg

  1. global
  2. maxconn 100000
  3. chroot /usr/local/haproxy
  4. uid 99
  5. gid 99
  6. daemon
  7. nbproc 1
  8. pidfile /usr/local/haproxy/logs/haproxy.pid
  9. log 127.0.0.1 local3 info
  10. defaults
  11. option http-keep-alive
  12. maxconn 100000
  13. mode http
  14. timeout connect 5000ms
  15. timeout client 50000ms
  16. timeout server 50000ms
  17. listen stats
  18. mode http
  19. bind 0.0.0.0:8888
  20. stats enable
  21. stats uri /haproxy-status
  22. stats auth haproxy:saltstack
  23. frontend frontend_www_example_com
  24. bind 192.168.3.11:80
  25. mode http
  26. option httplog
  27. log global
  28. default_backend backend_www_example_com
  29. backend backend_www_example_com
  30. option forwardfor header X-REAL-IP
  31. option httpchk HEAD / HTTP/1.0
  32. balance source
  33. server web-node1 192.168.217.149:8080 check inter 2000 rise 30 fall 15
  34. server web-node2 192.168.217.150:8080 check inter 2000 rise 30 fall 15

cd /srv/salt/prod/cluster/
vim /srv/salt/prod/cluster/haproxy-outside.sls

  1. include:
  2. - haproxy.install
  3.  
  4. haproxy-service:
  5. file.managed:
  6. - name: /etc/haproxy/haproxy.cfg
  7. - source: salt://cluster/files/haproxy-outside.cfg
  8. - user: root
  9. - group: root
  10. - mode: 644
  11. service.running:
  12. - name: haproxy
  13. - enable: True
  14. - reload: True
  15. - require:
  16. - cmd: haproxy-init
  17. - watch:
  18. - file: haproxy-service

2、编写top.sls

cd /srv/salt/base/
vim top.sls

  1. base:
  2. '*':
  3. - init.env_init
  4. prod:
  5. "node1":
  6. - cluster.haproxy-outside
  7. "node2":
  8. - cluster.haproxy-outside

三、执行安装配置

  1. salt '*' state.highstate

四、Web查看服务状态
从web登陆192.168.217.149:8888/haproxy-status

用户名和密码在/srv/salt/prod/cluster/files/haproxy-outside.cfg中

  1. grep 'auth' /srv/salt/prod/cluster/files/haproxy-outside.cfg
  2. stats auth haproxy:saltstack

界面如下:

  

SaltStack自动化安装配置haproxy的更多相关文章

  1. SaltStack自动化安装配置haproxy的Keepalived

    keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...

  2. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...

  3. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...

  4. SaltStack自动化安装zabbix-server

    使用SaltStack自动化安装zabbix-server 1,设置ntp时间同步 2,安装zabbix-agent 3,安装zabbix-server 4,安装及配置mariadb(mariadb与 ...

  5. NTP时间同步 服务端 客户端 自动化安装配置

    NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...

  6. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  7. Linux系统实现ansible自动化安装配置httpd

    1.使用ansible的playbook实现自动化安装httpd 1)首先配置好ansible的hosts文件,让其对应主机能够受ansible控制 提示:我们在主机清单上配置了所管控的主机地址,但是 ...

  8. Kickstart 自动化安装配置

    自动化安装案例: 一 ,系统环境 # cat /etc/redhat-release CentOS release 6.6 (Final) #Hostname [root@boot ~]# hostn ...

  9. saltstack syndic安装配置使用

    salt-syndic是做神马的呢?如果大家知道zabbix proxy的话那就可以很容易理解了,syndic的意思为理事,其实如果叫salt-proxy的话那就更好理解了,它就是一层代理,如同zab ...

随机推荐

  1. ACM学习历程—HDU5476 Explore Track of Point(平面几何)(2015上海网赛09题)

    Problem Description In Geometry, the problem of track is very interesting. Because in some cases, th ...

  2. uoj problem 11 ydc的大树

    题目大意: 给定一颗黑白树.允许删除一个白点.最大化删点后无法与删点前距自己最远的黑点连通的黑点个数.并求出方案数. 题解: 这道题很棒棒啊. 一开始想了一个做法,要用LCT去搞,特别麻烦而且还是\( ...

  3. java判断一个类是否公共类

    Modifier.isPublic([类].getModifiers()) Modifier.isAbstract([类].getModifiers())

  4. mysql du-master配置

    db-server1 my.cnf log_bin = mysql-binbinlog_format = mixedserver_id = 1 read-only = 0#binlog-do-db = ...

  5. Logstash 2.0.0 beta2 发布,开源日志管理

    Logstash 是一个应用程序日志.事件的传输.处理.管理和搜索的平台.你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计. Logstash 现在是 ElasticSea ...

  6. POJ 1042 Gone Fishing( DP )

    题意:小明打算做一个h((1 <= h <= 16))个小时钓鱼旅行.发现这里有n(2 <= n <= 25)个湖,而且所有的湖都在一条路的旁边.小明打算从第1个湖开始钓起,每 ...

  7. Java enum(枚举)使用详解之三

    DK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl... ...

  8. 奇异值分解(SVD)详解

    2012-04-10 17:38 45524人阅读 评论(18) 收藏 举报  分类: 数学之美 版权声明:本文为博主原创文章,未经博主允许不得转载. SVD分解 SVD分解是LSA的数学基础,本文是 ...

  9. 人工智能: 自动寻路算法实现(三、A*算法)

    博客转载自:https://blog.csdn.net/kwame211/article/details/78139506 本篇文章是机器人自动寻路算法实现的第三章.我们要讨论的是一个在一个M×N的格 ...

  10. 很随意的让你了解 - 最小生成树之Prim算法

    首先分成两个容器. 第一个容器就是装有生成树里面的顶点,第二个容器就是装有没有放入这个第一个容器中的顶点. 首先默认往第一个容器里面装一个顶点.然后..计算出第二个容器里所有顶点和这个顶点的距离.没有 ...