darkpoon 发表于 2018-7-31 09:22:56

saltstack搭建集群详解1-feng

# mkdir /srv/salt/prod/haproxy                  #haprox模块目录  
# mkdir /srv/salt/prod/haproxy/files               #存放haprox的一些文件
  
# ll /srv/salt/prod/haproxy/files/
  
-rw-r--r--. 1 root root 1538976 Aug 112017 haproxy-1.6.2.tar.gzhaproxy    #源码包
  
-rw-r--r--. 1 root root    2395 Aug 11 08:31 haproxy.inithaproxy         #启动脚本
  
# cd /srv/salt/prod/haproxy/
  
# vim install.sls
  
include:
  
- pkg.pkg-init                        #这是个相对目录,相对于配置文件中的/srv/salt/prod/,意思是调用/srv/salt/prod/目录下的pkg目录下的pkg-init.sls
  

  
haproxy-install:                         #ID
  
file.managed:
  
    - name: /usr/local/src/haproxy-1.6.2.tar.gz      #name 声明,没有ID可以把name声明放在ID位置
  
    - source: salt://haproxy/files/haproxy-1.6.2.tar.gz    #这里也是相对路径/srv/salt/prod/,源码包所在
  
    - user: root
  
    - group: root
  
    - mode: 755
  
cmd.run:               #将要执行的命令放在这个模块下
  
    - name: cd /usr/local/src/ && tar xf 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    #/usr/local/haproxy 目录不存在才执行cmd命令
  
    - require:                #指定依赖
  
      - pkg: pkg-init            #依赖pkg-init这个ID的pkg模块,这个模块必须执行成功才执行本模块cmd.run
  
      - file: haproxy-install      #依赖haproxy-install这个ID的file模块
  

  
haproxy-init:
  
file.managed:
  
    - name: /etc/init.d/haproxy
  
    - 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: haproxy-init
  

  
net.ipv4.ip_nonlocal_bind:            #/proc/sys/net/ipv4/ip_nonlocal_bind,这里只需要写相对路径
  
sysctl.present:#sysctl         #模块,管理内核模块
  
    - value: 1            #默认不让监听非本地ip,改为1后可以监听
  

  
haproxy-config-dir:            #ID
  
file.directory:
  
    - name: /etc/haproxy          #创建配置文件目录
  
    - user: root
  
    - group: root
  
- mode: 755
  

  
# salt 'node1' state.sls haproxy.install env=prod   #手动测试一下
页: [1]
查看完整版本: saltstack搭建集群详解1-feng