cd /srv/salt/prod/

mkdir haproxy
mkdir keepalived
mkdir nginx
mkdir php
mkdir memcached
mkdir pkg

cd pkg

vim make.sls

make-pkg:
pkg.installed:
- pkgs:
- gcc
- gcc-c++
- glibc
- make
- autoconf
- openssl
- openssl-devel
- pcre
- pcre-devel

先安装一遍haproxy取得配置文件等信息

cd /srv/salt/prod/haproxy/files/

把haproxy安装包拷贝到这个目录

cp /root/tools/haproxy-1.6.3.tar.gz /usr/local/src/

解压 haproxy

make TARGET=linux2628
make install TARGET=linux2628 PREFIX=/usr/local/haproxy-1.6.3

ln -s /usr/local/haproxy-1.6.3/ /usr/local/haproxy

由于不是默认安装 需要修改启动脚本

cd  /srv/salt/prod/haproxy/files/haproxy-1.6.3/examples

vim haproxy.init

拷贝

cp haproxy.init  /srv/salt/prod/haproxy/files

cd /srv/salt/prod/haproxy

vim install.sls

include:
- pkg.make haproxy-install:
file.managed:
- name: /usr/local/src/haproxy-1.6.3.tar.gz
- source: salt://haproxy/files/haproxy-1.6.3.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /usr/local/src && tar zxf haproxy-1.6.3.tar.gz && cd haproxy-1.6.3 && make TARGET=linux2628 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && ln -s /usr/local/haproxy-1.6.3 /usr/local/haproxy
- require:
- pkg: make-pkg
- file: haproxy-install

可以执行安装试一下了

salt '10-8-86-172' state.sls haproxy.install saltenv=prod

PS:注意路径,默认使用base可以在后面加saltenv=prod使用prod

每次执行都会执行一次这个命令,这样不合理

继续学习状态间关系

1,unless 如果unless后面返回的值为真就不执行cmd.run   - unless: test -L /usr/local/haproxy

2,onlyif

再完善一下

include:
- pkg.make haproxy-install:
file.managed:
- name: /usr/local/src/haproxy-1.6.3.tar.gz
- source: salt://haproxy/files/haproxy-1.6.3.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /usr/local/src && tar zxf haproxy-1.6.3.tar.gz && cd haproxy-1.6.3 && make TARGET=linux2628 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && ln -s /usr/local/haproxy-1.6.3 /usr/local/haproxy
- unless: test -L /usr/local/haproxy
- require:
- pkg: make-pkg
- file: haproxy-install /etc/init.d/haproxy:
file.managed:
- source: salt://haproxy/files/haproxy.init
- mode: 755
- user: root
- group: root
- require_in:
- file: haproxy-install net.ipv4.ip_nonlocal_bind:
sysctl.present:
- value: 1 /etc/haproxy:
file.directory:
- user: root
- group: root
- mode: 755
~

PS:net.ipv4.ip_nonlocal_bind:

sysctl.present:

     - value: 1

是允许ip4监听

业务引用

把结构做一个调整新建两个目录一个cluster 一个modules

把之前建立的文件夹全部放入modules(所有的基础模块放在这里)业务放在cluster

刚刚的install.sls路径也需要修改

可以执行代表设置成功

salt '10-8-86-172' state.sls modules.haproxy.install saltenv=prod

业务引用

/srv/salt/prod/cluster

mkdir files
cd files/

vim haproxy-outside.cfg

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 192.168.56.21: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 192.168.56.21:8080 check inter 2000 rise 30 fall 15
server web-node2 192.168.56.22:8080 check inter 2000 rise 30 fall 15

cd /srv/salt/prod/cluster

vim haproxy-outside.sls

include:
- modules.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-install
- watch:
- file: haproxy-service

在top里面定义

vim /srv/salt/base/top.sls

base:
'*':
- init.init prod:
'*':
- cluster.haproxy-outside

执行高级状态

salt '10-8-86-172' state.highstate

最新文章

  1. PHP Header下载文件在IE文件名中文乱码问题
  2. HDU 2101 A + B Problem Too 分类: ACM 2015-06-16 23:57 18人阅读 评论(0) 收藏
  3. (java)从零开始之--装饰者设计模式
  4. PHP 开发工具【2】
  5. oracle系列--基础理论
  6. Java多线程父子线程关系 多线程中篇(六)
  7. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习5
  8. 9-8-B树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
  9. Mysql索引,有哪几种索引,什么时候该(不该)建索引;SQL怎么进行优化以及SQL关键字的执行顺序
  10. English: How to Pronounce R [ɹ] Consonant
  11. js时间的应用(再看看前面,会发现不一样的)
  12. Android开发点点滴滴——一些基础的但实用的知识(2)
  13. ROS(机器视觉)
  14. CSS盒子模型中()是透明的,这部分可以显示背景()
  15. type="button"和type="submit"的区别
  16. virtualbox使用相关问题
  17. python3----转换大小写(upper lower capitalize and title)
  18. JavaWeb中的中文编码问题
  19. request_mem_region,ioremap 和phys_to_virt()
  20. SpringMVC笔记- 不配置HandlerMapping

热门文章

  1. generating-ssh-keys
  2. faster-rcnn原理及相应概念解释
  3. android应用开发-从设计到实现 3-4 静态原型的状态栏
  4. Go之单元测试
  5. 查看一个dll是否是强命名[C#]
  6. Ubuntu VMware出现提示No 3D support is available的解决方法
  7. 树莓派3安装opencv2程序无法运行
  8. java框架---->mybatis的使用(一)
  9. 【Nginx系列】Nginx之location
  10. 笔者使用macOS的一些经验点滴记录1