• saltstack实战4--综合练习2


    Saltstack配置管理-功能模块-安装haproxy

    配置管理,我们分了3层

    最底层是系统初始化部分

    倒数二层是功能模块,就是具体的产品的安装了

    假如你的环境需要nginx,php,memcache,haproxy这4个功能模块

    为了方便管理,你至少要创建4个目录
    由于编译安装中用到一些依赖的包需要提前安装,我们又可以单独建立一个包管理的目录
    操作如下
    [root@master base]# cd 
    [root@master ~]# mkdir /srv/salt/prod/pkg
    [root@master ~]# mkdir /srv/salt/prod/haproxy
    [root@master ~]# mkdir /srv/salt/prod/haproxy/files
    [root@master ~]# cd /srv/salt/prod/pkg/
    [root@master pkg]# vim pkg-init.sls
    [root@master pkg]# cat pkg-init.sls 
    pkg-init:
      pkg.installed:
        - names:
          - gcc
          - gcc-c++
          - glibc
          - make
          - autoconf
          - openssl
          - openssl-devel
    [root@master pkg]# 
    

    目录结构如下

    [root@master pkg]# cd /srv/salt/prod/
    [root@master prod]# tree
    .
    ├── haproxy
    │   └── files
    └── pkg
        └── pkg-init.sls
    
    3 directories, 1 file
    [root@master prod]# 
    

    1、由于是源码安装,先找台系统版本一致的机器把haproxy执行源码安装,把安装过程用到的命令采集出来

    这里我们找一台机器10.0.1.174这个区安装haproxy

    为了保持环境一致,除了系统版本一致外,最好yum源也一致,先手动安装编译环境

    [root@mysql ~]# yum install gcc gcc-c++ make autoconf openssl openssl-devel glibc -y
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * base: mirrors.zju.edu.cn
     * epel: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.zju.edu.cn
     * updates: centos.ustc.edu.cn
    Package gcc-4.4.7-17.el6.x86_64 already installed and latest version
    Package gcc-c++-4.4.7-17.el6.x86_64 already installed and latest version
    Package 1:make-3.81-23.el6.x86_64 already installed and latest version
    Package autoconf-2.63-5.1.el6.noarch already installed and latest version
    Package openssl-1.0.1e-48.el6_8.3.x86_64 already installed and latest version
    Package openssl-devel-1.0.1e-48.el6_8.3.x86_64 already installed and latest version
    Package glibc-2.12-1.192.el6.x86_64 already installed and latest version
    Nothing to do
    [root@mysql ~]# 
    

    2、把源码包统一放在一个目录下,以后这也是minion机器的放的位置

    [root@mysql src]# cd /usr/local/src/
    [root@mysql src]# rz -E
    rz waiting to receive.
    [root@mysql src]# ls
    haproxy-1.6.2.tar.gz
    [root@mysql src]# tar xfz haproxy-1.6.2.tar.gz 
    [root@mysql src]# cd haproxy-1.6.2
    [root@mysql haproxy-1.6.2]# 
    

    3、执行如下命令编译和安装

    haproxy 直接就是make && make install, 没有configure的步骤
    make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy
    

    至此安装部分完成。 

    4、采集命令

    把所有命令拷贝过来,通过&&连接起来
    cd /usr/local/src/ && tar xfz  haproxy-1.6.2.tar.gz &&  cd  haproxy-1.6.2  &&  make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy
    

    5、搜集安装包和需要的文件

    启动脚本的修改,找到BIN路径,修改成正确,如下,其余不用动

    [root@mysql haproxy-1.6.2]# pwd
    /usr/local/src/haproxy-1.6.2
    [root@mysql haproxy-1.6.2]# ls
    CHANGELOG     ebtree                   include      README   tests
    contrib       examples                 LICENSE      ROADMAP  VERDATE
    CONTRIBUTING  haproxy                  MAINTAINERS  src      VERSION
    doc           haproxy-systemd-wrapper  Makefile     SUBVERS
    [root@mysql haproxy-1.6.2]# cd examples/
    [root@mysql examples]# vim haproxy.init 
    [root@mysql examples]# grep BIN=  haproxy.init 
    BIN=/usr/local/haproxy/sbin/$BASENAME
    [root@mysql examples]# 
    

    把这个文件放到master机器的此目录下

    [root@master files]# pwd
    /srv/salt/prod/haproxy/files
    [root@master files]# ls
    haproxy.init
    [root@master files]# 
    

    把源码包也上传到这个目录下统一管理

    [root@master files]# ls
    haproxy-1.6.2.tar.gz  haproxy.init
    [root@master files]# 
    

    6、在master机器上编写安装脚本

    下面是个初步的脚本,把yum依赖的包include进来即可,注意相对路径,是在prod下面的pkg下面的pkg-init.sls配置文件

    haproxy-install是个id,可以随便写,但是最好要通俗易懂

    [root@master haproxy]# vim install.sls
    
    include:
      - pkg.pkg-init
    
    haproxy-install:
      file.namaged:
        - 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 xfz  haproxy-1.6.2.tar.gz &&  cd  haproxy-1.6.2  &&  make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy
    

    上面脚本还不够完善,因为它每次执行都会重新编译安装一遍。

    可以添加判断语句

    脚本如下   

    test -d /usr/local/haproxy    如果目录存在,就为真,不存在就为假,这样minion机器上不存在haproxy目录时才去安装它

    [root@master haproxy]# vim install.sls
    
    include:
      - pkg.pkg-init
    
    haproxy-install:
      file.namaged:
        - 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 xfz  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
    

    继续优化,如果需要编译的依赖包没安装成功,而执行下面的haproxy-install步骤的话,肯定会报错

    为了防止这种问题,官方给出如下功能模块

    require下面的每个模块只能出现一次,比如,pkg和file只能出现一次。它们冒号后面的是你定义的id
    include你可以理解为把文件内容复制进来,之所以使用include就是为了解耦
    使用require的主要原因是防止上面的安装失败,因为只要上面的安装失败,后面的一定会报错的
     
     
    [root@master haproxy]# vim install.sls
    
    include:
      - pkg.pkg-init
    
    haproxy-install:
      file.namaged:
        - 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 xfz  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
    

    注意:上面的pkg-init是include pkg.pkg-init文件里的你定义的id。 另外注意id是唯一的 

    另外一个id下面的某一个模块只能出现一次,haproxy-install这个id下面有文件管理模块,cmd.run模块 

    [root@master pkg]# pwd
    /srv/salt/prod/pkg
    [root@master pkg]# ls
    pkg-init.sls
    [root@master pkg]# cat pkg-init.sls 
    pkg-init:
      pkg.installed:
        - names:
          - gcc
          - gcc-c++
          - glibc
          - make
          - autoconf
          - openssl
          - openssl-devel
    [root@master pkg]# 
    

    继续优化

    由于启动脚本也要传到minion上,

    由于一个id下面只能出现一个模块,因此启动脚本还需要再写到一个新的id下面。
    第一行这里是个name声明。 上面写了id声明其实为了include的时候方便,好调用
    最后一行指的是haproxy-install下面的cmd模块。 一个id下面同样的模块只能有一次

    此时,脚本内容如下

    [root@master haproxy]# cat install.sls 
    include:
      - pkg.pkg-init
    
    haproxy-install:
      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 xfz  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
    /etc/init.d/haproxy:
      file.managed:
        - source: salt://haproxy/files/haproxy.init
        - user: root
        - group: root
        - mode: 755
        - require:
          - cmd: haproxy-install
    
    [root@master haproxy]# 
    

    继续完善

    minion有一个内核参数需要修改,这个参数作用可以用来监听非本地ip,也就是改了之后可以监听别人的ip

    默认是0,需要改为1
    [root@minion01 ~]# cat /proc/sys/net/ipv4/ip_nonlocal_bind 
    0
    [root@minion01 ~]# 
    

    把这个修改项加入到install.sls配置文件里

    [root@master haproxy]# cat install.sls 
    include:
      - pkg.pkg-init
    
    haproxy-install:
      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 xfz  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
    /etc/init.d/haproxy:
      file.managed:
        - source: salt://haproxy/files/haproxy.init
        - user: root
        - group: root
        - mode: 755
        - require:
          - cmd: haproxy-install
    
    net.ipv4.ip_nonlocal_bind:
      sysctl.present:
        - value: 1
    
    [root@master haproxy]# 
    

    继续补充

    另外创建一个目录,用于存放配置文件。 调用了file.directory 方法,创建一个目录
    [root@master haproxy]# cat install.sls 
    include:
      - pkg.pkg-init
    
    haproxy-install:
      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 xfz  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
    /etc/init.d/haproxy:
      file.managed:
        - source: salt://haproxy/files/haproxy.init
        - user: root
        - group: root
        - mode: 755
        - require:
          - cmd: haproxy-install
    
    net.ipv4.ip_nonlocal_bind:
      sysctl.present:
        - value: 1
    
    haproxy-config-dir:
      file.directory:
        - name: /etc/haproxy
        - user: root
        - group: root
        - mode: 755 
    
    [root@master haproxy]# 
    

       

    继续优化一下,把启动脚本加入系统服务里,同时在这之前做一个unless判断,如果有了就不执行了
    [root@master haproxy]# cat install.sls 
    include:
      - pkg.pkg-init
    
    haproxy-install:
      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 xfz  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
    /etc/init.d/haproxy:
      file.managed:
        - source: salt://haproxy/files/haproxy.init
        - user: root
        - group: root
        - mode: 755
        - require:
          - cmd: haproxy-install
    
    net.ipv4.ip_nonlocal_bind:
      sysctl.present:
        - value: 1
    
    haproxy-config-dir:
      file.directory:
        - name: /etc/haproxy
        - user: root
        - group: root
        - mode: 755 
    
    haproxy-init:
      cmd.run:
        - name: chkconfig --add haproxy
        - unless: chkconfig --list | grep haproxy
    
    [root@master haproxy]# 
    

      

    上面的一些配置调整下顺序,可以合并一些

    /etc/init.d/haproxy:
      file.managed:
    和下面可以合并到一起

    haproxy-init:

    下面早这样显得更加清晰明了

    分为

    安装依赖包

    编译安装包

    创建配置目录

    替换启动脚本,加入系统服务

    修改内核参数

    [root@master haproxy]# cat install.sls 
    include:
      - pkg.pkg-init
    
    haproxy-install:
      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 xfz  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
    
    haproxy-config-dir:
      file.directory:
        - name: /etc/haproxy
        - user: root
        - group: root
        - mode: 755 
    
    haproxy-init:
      file.managed:
        - source: salt://haproxy/files/haproxy.init
        - name: /etc/init.d/haproxy
        - 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:
      sysctl.present:
        - value: 1
    [root@master haproxy]# 
    

      

     7、测试执行。

    注意执行时的相对路径为prod下面的haproxy下面的install.sls文件

    下面还不能执行,因为它默认以base为基准环境的。

    [root@master haproxy]# salt 'minion01' state.sls haproxy.install
    

    需要更改下环境,加入env=prod

    [root@master haproxy]# salt 'minion01' state.sls haproxy.install env=prod
    

    执行前先测试下语法

    [root@master haproxy]# salt 'minion01' state.sls haproxy.install env=prod test=True
    

    先对minion01执行

    [root@master haproxy]# salt 'minion01' state.sls haproxy.install env=prod test=True
    minion01:
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc
          Result: True
         Comment: Package gcc is already installed.
         Started: 00:13:35.109771
        Duration: 1021.903 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: glibc
          Result: True
         Comment: Package glibc is already installed.
         Started: 00:13:36.131853
        Duration: 0.392 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl
          Result: True
         Comment: Package openssl is already installed.
         Started: 00:13:36.132297
        Duration: 0.204 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl-devel
          Result: None
         Comment: The following packages are set to be installed/updated: openssl-devel
         Started: 00:13:36.132660
        Duration: 6151.188 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: autoconf
          Result: True
         Comment: Package autoconf is already installed.
         Started: 00:13:42.284082
        Duration: 0.498 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc-c++
          Result: True
         Comment: Package gcc-c++ is already installed.
         Started: 00:13:42.284643
        Duration: 0.32 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: make
          Result: True
         Comment: Package make is already installed.
         Started: 00:13:42.285021
        Duration: 0.265 ms
         Changes:   
    ----------
              ID: haproxy-install
        Function: file.managed
            Name: /usr/local/src/haproxy-1.6.2.tar.gz
          Result: None
         Comment: The file /usr/local/src/haproxy-1.6.2.tar.gz is set to be changed
         Started: 00:13:42.287394
        Duration: 6.023 ms
         Changes:   
                  ----------
                  newfile:
                      /usr/local/src/haproxy-1.6.2.tar.gz
    ----------
              ID: haproxy-install
        Function: cmd.run
            Name: cd /usr/local/src/ && tar xfz  haproxy-1.6.2.tar.gz &&  cd  haproxy-1.6.2  &&  make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy
          Result: None
         Comment: Command "cd /usr/local/src/ && tar xfz  haproxy-1.6.2.tar.gz &&  cd  haproxy-1.6.2  &&  make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy" would have been executed
         Started: 00:13:42.306558
        Duration: 5.2 ms
         Changes:   
    ----------
              ID: haproxy-config-dir
        Function: file.directory
            Name: /etc/haproxy
          Result: None
         Comment: The following files will be changed:
                  /etc/haproxy: directory - new
         Started: 00:13:42.312015
        Duration: 0.596 ms
         Changes:   
    ----------
              ID: haproxy-init
        Function: file.managed
            Name: /etc/init.d/haproxy
          Result: None
         Comment: The file /etc/init.d/haproxy is set to be changed
         Started: 00:13:42.312797
        Duration: 2.457 ms
         Changes:   
                  ----------
                  newfile:
                      /etc/init.d/haproxy
    ----------
              ID: haproxy-init
        Function: cmd.run
            Name: chkconfig --add haproxy
          Result: None
         Comment: Command "chkconfig --add haproxy" would have been executed
         Started: 00:13:42.315640
        Duration: 29.487 ms
         Changes:   
    ----------
              ID: net.ipv4.ip_nonlocal_bind
        Function: sysctl.present
          Result: None
         Comment: Sysctl option net.ipv4.ip_nonlocal_bind set to be changed to 1
         Started: 00:13:42.345758
        Duration: 15.01 ms
         Changes:   
    
    Summary
    ------------
    Succeeded: 13 (unchanged=7, changed=2)
    Failed:    0
    ------------
    Total states run:    13
    [root@master haproxy]# 
    

    显示无异常,去掉test,然后执行

    由于执行过程打印东西太多,这里只粘贴后部分

              ID: haproxy-config-dir
        Function: file.directory
            Name: /etc/haproxy
          Result: True
         Comment: Directory /etc/haproxy updated
         Started: 00:18:33.811215
        Duration: 58.435 ms
         Changes:   
                  ----------
                  /etc/haproxy:
                      New Dir
    ----------
              ID: haproxy-init
        Function: file.managed
            Name: /etc/init.d/haproxy
          Result: True
         Comment: File /etc/init.d/haproxy updated
         Started: 00:18:33.870191
        Duration: 29.092 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0755
    ----------
              ID: haproxy-init
        Function: cmd.run
            Name: chkconfig --add haproxy
          Result: True
         Comment: Command "chkconfig --add haproxy" run
         Started: 00:18:33.901244
        Duration: 63.336 ms
         Changes:   
                  ----------
                  pid:
                      12612
                  retcode:
                      0
                  stderr:
                  stdout:
    ----------
              ID: net.ipv4.ip_nonlocal_bind
        Function: sysctl.present
          Result: True
         Comment: Updated sysctl value net.ipv4.ip_nonlocal_bind = 1
         Started: 00:18:33.966223
        Duration: 19.02 ms
         Changes:   
                  ----------
                  net.ipv4.ip_nonlocal_bind:
                      1
    
    Summary
    -------------
    Succeeded: 13 (changed=7)
    Failed:     0
    -------------
    Total states run:     13
    [root@master haproxy]# 
    

    一个好的配置管理文件支持多次执行而不报错

    [root@master haproxy]# salt 'minion01' state.sls haproxy.install env=prod 
    minion01:
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc
          Result: True
         Comment: Package gcc is already installed.
         Started: 00:20:40.519033
        Duration: 1009.595 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: glibc
          Result: True
         Comment: Package glibc is already installed.
         Started: 00:20:41.528770
        Duration: 0.551 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl
          Result: True
         Comment: Package openssl is already installed.
         Started: 00:20:41.529382
        Duration: 0.233 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl-devel
          Result: True
         Comment: Package openssl-devel is already installed.
         Started: 00:20:41.529665
        Duration: 0.31 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: autoconf
          Result: True
         Comment: Package autoconf is already installed.
         Started: 00:20:41.530024
        Duration: 0.242 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc-c++
          Result: True
         Comment: Package gcc-c++ is already installed.
         Started: 00:20:41.530314
        Duration: 0.212 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: make
          Result: True
         Comment: Package make is already installed.
         Started: 00:20:41.530573
        Duration: 0.292 ms
         Changes:   
    ----------
              ID: haproxy-install
        Function: file.managed
            Name: /usr/local/src/haproxy-1.6.2.tar.gz
          Result: True
         Comment: File /usr/local/src/haproxy-1.6.2.tar.gz is in the correct state
         Started: 00:20:41.532769
        Duration: 8.86 ms
         Changes:   
    ----------
              ID: haproxy-install
        Function: cmd.run
            Name: cd /usr/local/src/ && tar xfz  haproxy-1.6.2.tar.gz &&  cd  haproxy-1.6.2  &&  make TARGET=linux26  PREFIX=/usr/local/haproxy  && make install  PREFIX=/usr/local/haproxy
          Result: True
         Comment: unless execution succeeded
         Started: 00:20:41.542658
        Duration: 6.244 ms
         Changes:   
    ----------
              ID: haproxy-config-dir
        Function: file.directory
            Name: /etc/haproxy
          Result: True
         Comment: Directory /etc/haproxy is in the correct state
         Started: 00:20:41.549086
        Duration: 0.834 ms
         Changes:   
    ----------
              ID: haproxy-init
        Function: file.managed
            Name: /etc/init.d/haproxy
          Result: True
         Comment: File /etc/init.d/haproxy is in the correct state
         Started: 00:20:41.550087
        Duration: 2.897 ms
         Changes:   
    ----------
              ID: haproxy-init
        Function: cmd.run
            Name: chkconfig --add haproxy
          Result: True
         Comment: unless execution succeeded
         Started: 00:20:41.553362
        Duration: 31.036 ms
         Changes:   
    ----------
              ID: net.ipv4.ip_nonlocal_bind
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.ip_nonlocal_bind = 1 is already set
         Started: 00:20:41.585118
        Duration: 14.902 ms
         Changes:   
    
    Summary
    -------------
    Succeeded: 13
    Failed:     0
    -------------
    Total states run:     13
    [root@master haproxy]# 
    

      

     minion01上验证

    [root@minion01 ~]# ll /usr/local/haproxy/
    total 12
    drwxr-xr-x 3 root root 4096 Jan  2 00:18 doc
    drwxr-xr-x 2 root root 4096 Jan  2 00:18 sbin
    drwxr-xr-x 3 root root 4096 Jan  2 00:18 share
    [root@minion01 ~]# chkconfig --list haproxy
    haproxy        	0:off	1:off	2:off	3:off	4:off	5:off	6:off
    [root@minion01 ~]# cat /proc/sys/net/ipv4/ip_nonlocal_bind 
    1
    [root@minion01 ~]# 
    

      

  • 相关阅读:
    Windows配置深度学习环境详细教程(二):conda工具的使用
    Windows配置深度学习环境详细教程(一):安装Pycharm和Miniconda
    性能基准DevOps之如何提升脚本执行效率
    【Go语言绘图】图片添加文字(二)
    Cesium中用到的图形技术——Computing the horizon occlusion point
    Cesium中用到的图形技术——Horizon Culling
    Unity3D学习笔记3——Unity Shader的初步使用
    C++:异常处理
    mysql数据库备份
    编程小工具
  • 原文地址:https://www.cnblogs.com/nmap/p/6241897.html
Copyright © 2020-2023  润新知