天天看點

Saltstack配置管理功能子產品-haproxy

[root@linux-node1 base]# mkdir /srv/salt/prod/pkg

[root@linux-node1 base]# mkdir /srv/salt/prod/haproxy

[root@linux-node1 base]# mkdir /srv/salt/prod/haproxy/files

[root@linux-node1 base]# cd /srv/salt/prod/haproxy/files

[root@linux-node1 files]# rz -y

rz waiting to receive.

Starting zmodem transfer.  Press Ctrl+C to cancel.

Transferring haproxy-1.6.2.tar.gz...

  100%    1502 KB    1502 KB/sec    00:00:01       0 Errors  

[root@linux-node1 files]# ls

haproxy-1.6.2.tar.gz

[root@linux-node1 files]# cp haproxy-1.6.2.tar.gz /usr/local/src/             =========================>将檔案拷貝到/usr/local/src下面

[root@linux-node1 base]# cd /srv/salt/prod/pkg/

[root@linux-node1 base]# vim pkg-init.sls

[root@linux-node1 pkg]# cat /srv/salt/prod/pkg/pkg-init.sls                    ================================>首先需要安裝如下依賴包

pkg-init:

  pkg.installed:

    - names:

      - gcc

      - gcc-c++

      - glibc

      - make

      - autoconf

      - openssl

      - openssl-devel

[root@linux-node1 files]# salt '*' state.sls pkg.pkg-init env=prod               ============================>執行狀态,安裝依賴包

安裝步驟記錄:

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

[root@linux-node1 haproxy]# pwd

/srv/salt/prod/haproxy

[root@linux-node1 haproxy]# ls

files  install.sls

[root@linux-node1 haproxy]# cat install.sls 

include:

  - pkg.pkg-init        #################先包含之前安裝的依賴包####################

haproxy-install:        ###########安裝haproxy程式############

  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 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        ######判斷一個目錄是否存在#########

    - require:                                  ###########檢查依賴###########

      - pkg: pkg-init                           ##########此處指明依賴哪個子產品########

      - file: haproxy-install                   #######一個id下一個子產品隻能用一次#########

haproxy-init:

  file.managed:                                #########檔案管理子產品與方法###########

    - name: /etc/init.d/haproxy

    - source: salt://haproxy/files/haproxy.init   ##########啟動腳本的位置###########

    - require:                              ##############檢測依賴###############

      - cmd: haproxy-install                ############檢測是否裝上###############

    - name: chkconfig --add haproxy

    - unless: chkconfig --list | grep haproxy

    - require:

      - file: haproxy-init

net.ipv4.ip_nonlocal_bind:

  sysctl.present:

    - value: 1

haproxy-config-dir:                       #########建立一個配置檔案目錄###########

  file.directory:                         

    - name: /etc/haproxy

[root@linux-node1 haproxy]# salt '*' state.sls haproxy.install env=prod

傳回結果:

linux-node1.example.com:

..........................

Summary

-------------

Succeeded: 13

Failed:     0

Total states run:     13

linux-node2.example.com:

Total states run:     13 

qq:406564728

歡迎交流

     本文轉自陳繼松 51CTO部落格,原文連結:http://blog.51cto.com/chenjisong/1714331,如需轉載請自行聯系原作者

繼續閱讀