Hi 你好,欢迎访问!登录
当前位置:首页 - 自动化运维 - 正文 忍人所不忍,能人所不能。

Linux自动化工具之SaltStack 实战项目2(功能模块_haproxy)

2020-03-03自动化运维90root76°c
A+ A-

1.创建目录

[[email protected] ~]# cd /etc/salt/states/ 
[[email protected] states]# mkdir pkg                  #rpm依赖包目录 
[[email protected] states]# mkdir -p haproxy/files       #haproxy源码包目录

2.编写rpm依赖包文件,准备haproxy包

[[email protected] states]# cd pkg/ 
[[email protected] pkg]# cat pkg/pkg-init.sls 
pkg-init:               #id声明 
  pkg.installed:        #pkg模块,installed方法. 
    - names:            #包名 
      - gcc
      - gcc-c++
      - glibc
      - make
      - autoconf
      - openssl
      - openssl-devel
      - htop
      - vim
      - lrzsz
[[email protected] states]# ll haproxy/files/      #源码包已准备好 
total 1504 
-rw-r--r-- 1 root root 1538976 Mar 17 09:50 haproxy-1.6.2.tar.gz

3.获取haproxy启动脚本

[[email protected] states]# cp haproxy/files/haproxy-1.6.2.tar.gz /usr/local/src/ 
[[email protected] states]# cd /usr/local/src 
[[email protected] src]# tar xvf haproxy-1.6.2.tar.gz  
[[email protected] src]# cd haproxy-1.6.2/examples 
[[email protected] examples]# sed -i 's/\/usr\/sbin\/'\$BASENAME'/\/usr\/local\/haproxy\/sbin\/'\$BASENAME'/g' haproxy.init
[[email protected] examples]# cp haproxy.init /etc/salt/states/haproxy/files/

4.编写haproxy安装文件

[[email protected] examples]# cd /etc/salt/states 
[[email protected] states]# vim haproxy/install.sls  
include:                  #name声明 
  - pkg.pkg-init 
haproxy-install:           #id声明 
  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:                                   #依赖上面的gcc状态. 
      - pkg: pkg-init 
      - file: haproxy-install 
 
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:                        #name声明 
  sysctl.present:                                 #监听非本地ip 
    - value: 1 
 
haproxy-config-dir: 
  file.directory: 
    - name: /etc/haproxy 
    - user: root 
    - group: root 
    - mode: 755

PS: ====================参数详解============================ 

状态模块: 状态间关系 
功    能:条件判断,主要用于cmd状态模块 
常用方法: 
    onlyif: 检查的命令, 仅当'onlyif'选项指向的命令返回true时才执行 
  name定义的命令 
    unless: 检查的命令, 仅当'unlesss'选项指向的命令返回false时才执行name指向的命令 
 
功能名称: requisites 
功    能: 处理状态之间关系 
常用方法:  
      require: 我依赖某个状态 
   require_in: 我被某个状态依赖 
       wathch: 我关注某个状态 
     watch_in: 我被某个状态关注

5.将haproxy.install添加到top

[[email protected] states]# cat top.sls  
base: 
  '*': 
    - init.env_init 
    - haproxy.install

6.模拟运行

[[email protected] states]# salt 'node2.*' state.highstate test=True
无报错即可.

7.minion检测是否安装成功

[[email protected] states]# salt 'node2.*' cmd.run 'ls /usr/local/src'               
node2.90root.com: 
    haproxy-1.6.2
    haproxy-1.6.2.tar.gz
    php-5.3.6
    php-5.3.6.tar.gz
  移步手机端
Linux自动化工具之SaltStack 实战项目2(功能模块_haproxy)

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>


  用户登录