• 《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>2 Keepalived


    实践案例 <中小型Web架构>2

    本章节参考《SaltStack技术入门与实践》,感谢该书作者: 刘继伟、沈灿、赵舜东(本章节中有好几处错误)

    Keepalived配置管理

      首先放置源码包、Keepalived的启动脚本、sysconfig配置文件在/srv/salt/prod/keepalived/files目录下。启动脚本和配置文件都可以从源码包中获取到。

    What is Keepalived ?
    Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures. Loadbalancing framework relies on well-known and widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. Keepalived implements a set of checkers to dynamically and adaptively maintain and manage loadbalanced server pool according their health. On the other hand high-availability is achieved by VRRP protocol. VRRP is a fundamental brick for router failover. In addition, Keepalived implements a set of hooks to the VRRP finite state machine providing low-level and high-speed protocol interactions. Keepalived frameworks can be used independently or all together to provide resilient infrastructures.
    kepipalvef是一个用c语言编写的路由软件。该项目的主要目标是为linux系统和基于linux的基础设施提供负载均衡和高可用性的简单而健壮的工具。负载平衡框架依赖于著名的和广泛使用的linux虚拟服务器(ipvs)内核模块,提供层4负载平衡。keapiview实现了一组检查程序,以动态和自适应地维护和管理负载均衡服务器池。另一方面,通过vrrp协议实现了高可用性。vrrp是路由器故障转移的基础砖。此外,keipalview实现了一组钩子到vrrp有限状态机,提供低级和高速协议交互。keipalived框架可以独立使用,或者一起使用以提供弹性基础结构。 

    软件包准备

    注意:
    这里遇到个坑,keepalived-2.0.4有个bug,make不过去
    [root@SaltMaster1(10.182.88.136)]$~:>cd /srv/salt/prod/keepalived/files/
    [root@SaltMaster1(10.182.88.136)]$files:>tar -zxf keepalived-2.0.5.tar.gz 
    [root@SaltMaster1(10.182.88.136)]$files:>cd keepalived-2.0.5
    [root@SaltMaster1(10.182.88.136)]$keepalived-2.0.5:>ls -l
    total 992
    -rw-rw-r-- 1 1000 1000     41 Jun  7 02:42 AUTHOR
    -rw-rw-r-- 1 1000 1000    823 Jun  7 02:42 CONTRIBUTORS
    -rw-rw-r-- 1 1000 1000  18092 Jun  7 02:42 COPYING
    -rw-rw-r-- 1 1000 1000 354034 Jun 29 17:38 ChangeLog
    -rw-rw-r-- 1 1000 1000   6257 Jun  7 02:42 INSTALL
    -rw-rw-r-- 1 1000 1000   1818 Jun 29 16:37 Makefile.am
    -rw-rw-r-- 1 1000 1000  28799 Jun 29 17:41 Makefile.in
    -rw-rw-r-- 1 1000 1000   1437 Jun  7 02:42 README.md
    -rw-rw-r-- 1 1000 1000   5094 Jun 29 16:37 TODO
    -rw-rw-r-- 1 1000 1000  54381 Jun 29 17:41 aclocal.m4
    -rwxr-xr-x 1 1000 1000   5826 Mar 30  2016 ar-lib
    drwxrwxr-x 2 1000 1000     44 Jun 29 17:41 bin_install
    -rwxr-xr-x 1 1000 1000   7333 Mar 30  2016 compile
    -rwxrwxr-x 1 1000 1000 366334 Jun 29 17:41 configure
    -rw-rw-r-- 1 1000 1000  64723 Jun 29 16:37 configure.ac
    -rwxr-xr-x 1 1000 1000  23566 Mar 30  2016 depcomp
    drwxrwxr-x 5 1000 1000    210 Jun 29 17:41 doc
    drwxrwxr-x 3 1000 1000    205 Jun 29 17:41 genhash
    -rwxr-xr-x 1 1000 1000  15155 Mar 30  2016 install-sh
    drwxrwxr-x 9 1000 1000    173 Jun 29 17:41 keepalived
    -rw-rw-r-- 1 1000 1000   8607 Jun  7 02:42 keepalived.spec.in
    drwxrwxr-x 2 1000 1000   4096 Jun 29 17:41 lib
    -rwxr-xr-x 1 1000 1000   6872 Mar 30  2016 missing
    drwxrwxr-x 2 1000 1000     28 Jun  7 02:42 snap
    [root@SaltMaster1(10.182.88.136)]$keepalived-2.0.5:>

      将Keepalvied需要的init脚本和sysconfig复制到files目录下:

    [root@SaltMaster1(10.182.88.136)]$files:>ll
    total 836
    drwxrwxr-x 8 1000 1000   4096 Jun 29 17:41 keepalived-2.0.5
    -rw-r--r-- 1 root root 848206 Jul  3 14:28 keepalived-2.0.5.tar.gz
    [root@SaltMaster1(10.182.88.136)]$files:>cp /srv/salt/prod/keepalived/files/keepalived-2.0.5/keepalived/etc/init.d/keepalived /srv/salt/prod/keepalived/files/
    [root@SaltMaster1(10.182.88.136)]$files:>cp /srv/salt/prod/keepalived/files/keepalived-2.0.5/keepalived/etc/sysconfig/keepalived /srv/salt/prod/keepalived/files/keepalived.sysconfig
    [root@SaltMaster1(10.182.88.136)]$files:>ll
    total 844
    -rwxr-xr-x 1 root root   1308 Jul  3 14:42 keepalived
    drwxrwxr-x 8 1000 1000   4096 Jun 29 17:41 keepalived-2.0.5
    -rw-r--r-- 1 root root 848206 Jul  3 14:28 keepalived-2.0.5.tar.gz
    -rw-r--r-- 1 root root    667 Jul  3 14:42 keepalived.sysconfig
    [root@SaltMaster1(10.182.88.136)]$files:>

      由于我们本次默认安装Keepalived到/export/servers/keepalived目录下,所以需要手动修改源码包里面的init脚本:

    #vim keepalived
    #将daemon keepalived ${KEEPALIVED_OPTIONS}
    #修改为 daemon /usr/local/keepalived/sbin/keepalived${KEEPALIVED_OPTIONS}

      或者使用sed直接修改:

    [root@SaltMaster1(10.182.88.136)]$files:>sed -i 's#/usr/local/keepalived/sbin/keepalived#/export/servers/keepalived/sbin/keepalived#g' keepalived
    [root@SaltMaster1(10.182.88.136)]$files:>grep daemon keepalived
    # Startup script for the Keepalived daemon
        daemon /export/servers/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS}

    编写Keepalived安装SLS

      然后我们就开始编写Keepalived的安装与配置:

    [root@SaltMaster1(10.182.88.136)]$~:>more /srv/salt/prod/keepalived/install.sls 
    include:
      - pkg.pkg-init
    
    pkg-additional:
      pkg.installed:
        - names:
          - curl
          - gcc
          - openssl-devel
          - libnl3-devel
          - net-snmp-devel
          - libnfnetlink
          - libnl.x86_64
          - libnl-devel.x86_64
          - libnl3.x86_64
          - libnl3-devel.x86_64
          - libnfnetlink-devel.x86_64
    
    keepalived-install:
      file.managed:
        - name: /tmp/keepalived-2.0.5.tar.gz
        - source: salt://keepalived/files/keepalived-2.0.5.tar.gz
        - mode: 755
        - user: root
        - group: root
        
      cmd.run:
        - name: cd /tmp/ && tar zxf keepalived-2.0.5.tar.gz && cd keepalived-2.0.5 &&./configure --prefix=/export/servers/keepalived && make -j 4 && make install
        - unless: test -d /export/servers/keepalived
        - mkdir: 
        - require:
          - pkg: pkg-init
          - pkg: pkg-additional
          - file: keepalived-install
    
    keepalived-init:
      file.managed:
        - name: /etc/init.d/keepalived
        - source: salt://keepalived/files/keepalived
        - user: root
        - group: root
        - mode: 755
    
      cmd.run:
        - name: chkconfig --add keepalived
        - unless: ckconfig --list|grep keepalived
        - require:
          - file: keepalived-init
    
    /etc/sysconfig/keepalived:
      file.managed:
        - source: salt://keepalived/files/keepalived.sysconfig
        - user: root
        - group: root
        - mode: 644
    
    /export/servers/keepalived:
      file.directory:
        - user: root
        - group: root
        - mode: 755

    Keepalived业务引用

      和Haproxy一样,我们需要一个Keepalived的配置文件,不过这次配置文件和Haproxy文件稍有不同,因为Keepalived分为主、备节点,一些配置在主节点和备节点上是不同的。我们需要使用Jinja模版来完成配置文件的管理。下面列出了Keepalived做Haproxy高可用的一个最小化的配置模版,请将该模版文件放置在/srv/salt/prod/cluster/files/目录下。

    [root@SaltMaster1(10.182.88.136)]$~:>cd /srv/salt/prod/cluster/files/
    [root@SaltMaster1(10.182.88.136)]$files:>more haproxy-service-keepalived.conf 
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         saltstack@example.com
       }
       notification_email_from keepalived@example.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id {{ROUTEID}}
    }
    vrrp_instance haproxy_ha {
    state {{STATEID}}
    interface eth0
        virtual_router_id 36
    priority {{PRIORITYID}}
        advert_int 1
    authentication {
    auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
           10.182.76.77
        }
    }

      下面我们在Cluster业务目录下编写Haproxy使用Keepalived做高可用的sls(我实验机的PS1非我主机名)

    [root@SaltMaster1(10.182.88.136)]$files:>vim haproxy-service-keepalived.sls
    [root@SaltMaster1(10.182.88.136)]$files:>more haproxy-service-keepalived.sls
    include:
      - keepalived.install
    
    keepalived-service:
      file.managed:
        - name: /export/servers/keepalived/etc/keepalived/keepalived.conf
    - source: salt://cluster/files/haproxy-service-keepalived.conf - user: root - group: root - mode: 644 - template: jinja {% if grains['fqdn'] == 'saltstack-master.example.com' %} - ROUTEID: haproxy_ha - STATEID: MASTER - PRIORITYID: 150 {% elif grains['fqdn'] == 'saltstack-minion.example.com' %} - ROUTEID: haproxy_ha - STATEID: BACKUP - PRIORITYID: 100 {% endif %} service.running: - name: keepalived - enable: True - watch: - file: keepalived-service

    执行Keepalvied状态 

      编写完毕Keepalived的状态管理后,就可以在top file里面指定Minion运行该状态:

    [root@SaltMaster1(10.182.88.136)]$files:>more /srv/salt/base/top.sls 
    #base:
    #  '*':
    #    - init.init
    base:
      '*':
        - init.env_init
    prod:
      '*':
        - cluster.haproxy-service
        - cluster.haproxy-service-keepalived
    #    - cluster.haproxy-outside
    #    - keepalived.install
    [root@SaltMaster1(10.182.88.136)]$files:>tree /srv/salt/prod/cluster/
    /srv/salt/prod/cluster/
    |-- config
    |-- files
    |   |-- haproxy-outside.cfg
    |   |-- haproxy-service-keepalived.conf
    |   `-- haproxy-service-keepalived.sls
    `-- haproxy-outside.sls
    
    2 directories, 4 files

    执行状态如下:

    [root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' state.highstate test=True

    [root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' state.highstate test=True
    10.182.76.78:
    ----------
              ID: /etc/resolv.conf
        Function: file.managed
          Result: True
         Comment: The file /etc/resolv.conf is in the correct state
         Started: 15:32:28.123030
        Duration: 33.48 ms
         Changes:   
    ----------
              ID: /etc/profile
        Function: file.append
          Result: True
         Comment: File /etc/profile is in correct state
         Started: 15:32:28.156771
        Duration: 4.672 ms
         Changes:   
    ----------
              ID: /etc/bashrc
        Function: file.append
          Result: True
         Comment: File /etc/bashrc is in correct state
         Started: 15:32:28.161644
        Duration: 4.64 ms
         Changes:   
    ----------
              ID: net.ipv4.ip_forward
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.ip_forward = 1 is already set
         Started: 15:32:28.168499
        Duration: 351.02 ms
         Changes:   
    ----------
              ID: net.ipv4.conf.default.rp_filter
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.conf.default.rp_filter = 1 is already set
         Started: 15:32:28.519879
        Duration: 347.363 ms
         Changes:   
    ----------
              ID: net.ipv4.conf.default.accept_source_route
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.conf.default.accept_source_route = 0 is already set
         Started: 15:32:28.867607
        Duration: 348.211 ms
         Changes:   
    ----------
              ID: kernel.sysrq
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.sysrq = 0 is already set
         Started: 15:32:29.216188
        Duration: 347.76 ms
         Changes:   
    ----------
              ID: kernel.core_uses_pid
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.core_uses_pid = 1 is already set
         Started: 15:32:29.564312
        Duration: 349.378 ms
         Changes:   
    ----------
              ID: kernel.msgmnb
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.msgmnb = 65536 is already set
         Started: 15:32:29.914047
        Duration: 349.128 ms
         Changes:   
    ----------
              ID: kernel.msgmax
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.msgmax = 65536 is already set
         Started: 15:32:30.263527
        Duration: 349.166 ms
         Changes:   
    ----------
              ID: kernel.shmmax
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.shmmax = 68719476736 is already set
         Started: 15:32:30.613060
        Duration: 350.354 ms
         Changes:   
    ----------
              ID: kernel.shmall
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.shmall = 4294967296 is already set
         Started: 15:32:30.963752
        Duration: 348.381 ms
         Changes:   
    ----------
              ID: yum_repo_release
        Function: pkg.installed
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:32.410658
        Duration: 2169.392 ms
         Changes:   
    ----------
              ID: zabbix_repo_release
        Function: pkg.installed
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:34.580409
        Duration: 664.375 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.245150
        Duration: 26.246 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc-c++
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.271593
        Duration: 28.298 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: glibc
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.300218
        Duration: 24.299 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: make
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.324704
        Duration: 24.257 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: autoconf
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.349177
        Duration: 24.367 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.373739
        Duration: 24.27 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl-devel
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.398213
        Duration: 24.344 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnfnetlink
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.422749
        Duration: 24.275 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.447225
        Duration: 24.37 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl-devel.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.471775
        Duration: 24.224 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl3.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.496189
        Duration: 23.97 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl3-devel.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:32:35.520360
        Duration: 25.176 ms
         Changes:   
    ----------
              ID: keepalived-install
        Function: file.managed
            Name: /tmp/keepalived-2.0.5.tar.gz
          Result: True
         Comment: The file /tmp/keepalived-2.0.5.tar.gz is in the correct state
         Started: 15:32:35.545792
        Duration: 24.207 ms
         Changes:   
    ----------
              ID: keepalived-install
        Function: cmd.run
            Name: cd /tmp/ && tar zxf keepalived-2.0.5.tar.gz && cd keepalived-2.0.5 &&./configure --prefix=/export/servers/keepalived && make -j 4 && make install
          Result: True
         Comment: unless condition is true
         Started: 15:32:35.572486
        Duration: 159.067 ms
         Changes:   
    ----------
              ID: keepalived-init
        Function: file.managed
            Name: /etc/init.d/keepalived
          Result: None
         Comment: The file /etc/init.d/keepalived is set to be changed
         Started: 15:32:35.731965
        Duration: 27.657 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -20,7 +20,7 @@
                       
                       start() {
                           echo -n $"Starting $prog: "
                      -    daemon /usr/local/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS}
                      +    daemon /export/servers/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS}
                           RETVAL=$?
                           echo
                           [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    ----------
              ID: keepalived-init
        Function: cmd.run
            Name: chkconfig --add keepalived
          Result: None
         Comment: Command "chkconfig --add keepalived" would have been executed
         Started: 15:32:35.760845
        Duration: 148.44 ms
         Changes:   
    ----------
              ID: /etc/sysconfig/keepalived
        Function: file.managed
          Result: True
         Comment: The file /etc/sysconfig/keepalived is in the correct state
         Started: 15:32:35.909637
        Duration: 6.9 ms
         Changes:   
    ----------
              ID: /export/servers/keepalived
        Function: file.directory
          Result: True
         Comment: The directory /export/servers/keepalived is in the correct state
         Started: 15:32:35.916751
        Duration: 1.377 ms
         Changes:   
    ----------
              ID: keepalived-service
        Function: file.managed
            Name: /export/servers/keepalived/etc/keepalived/keepalived.conf
          Result: True
         Comment: The file /export/servers/keepalived/etc/keepalived/keepalived.conf is in the correct state
         Started: 15:32:35.918349
        Duration: 33.972 ms
         Changes:   
    ----------
              ID: keepalived-service
        Function: service.running
            Name: keepalived
          Result: None
         Comment: Service keepalived is set to start
         Started: 15:32:35.953547
        Duration: 472.259 ms
         Changes:   
    
    Summary for 10.182.76.78
    -------------
    Succeeded: 34 (unchanged=3, changed=1)
    Failed:     0
    -------------
    Total states run:     34
    Total run time:    7.189 s
    View Code

    [root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.76.78' state.highstate

    [root@SaltMaster1(10.182.88.136)]$~:>salt '10.182.88.136' state.highstate 
    10.182.88.136:
    ----------
              ID: /etc/resolv.conf
        Function: file.managed
          Result: True
         Comment: File /etc/resolv.conf is in the correct state
         Started: 15:52:13.854630
        Duration: 41.573 ms
         Changes:   
    ----------
              ID: /etc/profile
        Function: file.append
          Result: True
         Comment: File /etc/profile is in correct state
         Started: 15:52:13.896533
        Duration: 5.275 ms
         Changes:   
    ----------
              ID: /etc/bashrc
        Function: file.append
          Result: True
         Comment: File /etc/bashrc is in correct state
         Started: 15:52:13.902031
        Duration: 4.857 ms
         Changes:   
    ----------
              ID: net.ipv4.ip_forward
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.ip_forward = 1 is already set
         Started: 15:52:13.909147
        Duration: 160.025 ms
         Changes:   
    ----------
              ID: net.ipv4.conf.default.rp_filter
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.conf.default.rp_filter = 1 is already set
         Started: 15:52:14.069589
        Duration: 165.994 ms
         Changes:   
    ----------
              ID: net.ipv4.conf.default.accept_source_route
        Function: sysctl.present
          Result: True
         Comment: Sysctl value net.ipv4.conf.default.accept_source_route = 0 is already set
         Started: 15:52:14.235950
        Duration: 152.941 ms
         Changes:   
    ----------
              ID: kernel.sysrq
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.sysrq = 0 is already set
         Started: 15:52:14.389230
        Duration: 165.704 ms
         Changes:   
    ----------
              ID: kernel.core_uses_pid
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.core_uses_pid = 1 is already set
         Started: 15:52:14.555351
        Duration: 164.274 ms
         Changes:   
    ----------
              ID: kernel.msgmnb
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.msgmnb = 65536 is already set
         Started: 15:52:14.720226
        Duration: 179.779 ms
         Changes:   
    ----------
              ID: kernel.msgmax
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.msgmax = 65536 is already set
         Started: 15:52:14.900344
        Duration: 152.813 ms
         Changes:   
    ----------
              ID: kernel.shmmax
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.shmmax = 68719476736 is already set
         Started: 15:52:15.053657
        Duration: 156.25 ms
         Changes:   
    ----------
              ID: kernel.shmall
        Function: sysctl.present
          Result: True
         Comment: Sysctl value kernel.shmall = 4294967296 is already set
         Started: 15:52:15.210247
        Duration: 166.678 ms
         Changes:   
    ----------
              ID: yum_repo_release
        Function: pkg.installed
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:16.346191
        Duration: 2664.601 ms
         Changes:   
    ----------
              ID: zabbix_repo_release
        Function: pkg.installed
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:19.011286
        Duration: 971.121 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:19.982799
        Duration: 35.884 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: gcc-c++
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.018932
        Duration: 34.171 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: glibc
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.053338
        Duration: 32.892 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: make
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.086464
        Duration: 32.854 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: autoconf
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.119560
        Duration: 33.201 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.153004
        Duration: 32.927 ms
         Changes:   
    ----------
              ID: pkg-init
        Function: pkg.installed
            Name: openssl-devel
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.186157
        Duration: 32.933 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: curl
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.219319
        Duration: 36.479 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: gcc
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.256208
        Duration: 29.383 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: openssl-devel
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.285779
        Duration: 28.823 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl3-devel
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.314796
        Duration: 28.694 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: net-snmp-devel
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.343687
        Duration: 28.448 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnfnetlink
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.372323
        Duration: 28.503 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.401024
        Duration: 30.371 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl-devel.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.431592
        Duration: 28.381 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl3.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.460164
        Duration: 28.256 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnl3-devel.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.488614
        Duration: 28.308 ms
         Changes:   
    ----------
              ID: pkg-additional
        Function: pkg.installed
            Name: libnfnetlink-devel.x86_64
          Result: True
         Comment: All specified packages are already installed
         Started: 15:52:20.517123
        Duration: 28.229 ms
         Changes:   
    ----------
              ID: keepalived-install
        Function: file.managed
            Name: /tmp/keepalived-2.0.5.tar.gz
          Result: True
         Comment: File /tmp/keepalived-2.0.5.tar.gz is in the correct state
         Started: 15:52:20.545554
        Duration: 60.762 ms
         Changes:   
    ----------
              ID: keepalived-install
        Function: cmd.run
            Name: cd /tmp/ && tar zxf keepalived-2.0.5.tar.gz && cd keepalived-2.0.5 &&./configure --prefix=/export/servers/keepalived && make -j 4 && make install
          Result: True
         Comment: Command "cd /tmp/ && tar zxf keepalived-2.0.5.tar.gz && cd keepalived-2.0.5 &&./configure --prefix=/export/servers/keepalived && make -j 4 && make install" run
         Started: 15:52:20.609054
        Duration: 13152.152 ms
         Changes:   
                  ----------
                  pid:
                      62635
                  retcode:
                      0
                  stderr:
                  stdout:
                      checking for a BSD-compatible install... /usr/bin/install -c
                      checking whether build environment is sane... yes
                      checking for a thread-safe mkdir -p... /bin/mkdir -p
                      checking for gawk... gawk
                      checking whether make sets $(MAKE)... yes
                      checking whether make supports nested variables... yes
                      checking whether make supports nested variables... (cached) yes
                      checking for pkg-config... /usr/bin/pkg-config
                      checking pkg-config is at least version 0.9.0... yes
                      checking for gcc... gcc
                      checking whether the C compiler works... yes
                      checking for C compiler default output file name... a.out
                      checking for suffix of executables... 
                      checking whether we are cross compiling... no
                      checking for suffix of object files... o
                      checking whether we are using the GNU C compiler... yes
                      checking whether gcc accepts -g... yes
                      checking for gcc option to accept ISO C89... none needed
                      checking whether gcc understands -c and -o together... yes
                      checking for style of include used by make... GNU
                      checking dependency style of gcc... gcc3
                      checking whether make sets $(MAKE)... (cached) yes
                      checking for ranlib... ranlib
                      checking for grep that handles long lines and -e... /bin/grep
                      checking whether ln -s works... yes
                      checking for a sed that does not truncate output... /bin/sed
                      checking for strip... strip
                      checking for ldd... ldd
                      checking for ar... ar
                      checking the archiver (ar) interface... ar
                      checking for -Wimplicit-fallthrough... no
                      checking for PIE support... yes
                      checking for -Wformat -Werror=format-security support... yes
                      checking for -Wp,-D_FORTIFY_SOURCE=2 support... yes
                      checking for -fexceptions support... yes
                      checking for -fstack-protector-strong support... no
                      checking for --param=ssp-buffer-size=4 support... yes
                      checking for -grecord-gcc-switches support... no
                      checking for -Wl,-z,relro support... yes
                      checking for -Wl,-z,now support... yes
                      checking for -O2 support... yes
                      checking how to run the C preprocessor... gcc -E
                      checking for egrep... /bin/grep -E
                      checking for ANSI C header files... yes
                      checking for sys/types.h... yes
                      checking for sys/stat.h... yes
                      checking for stdlib.h... yes
                      checking for string.h... yes
                      checking for memory.h... yes
                      checking for strings.h... yes
                      checking for inttypes.h... yes
                      checking for stdint.h... yes
                      checking for unistd.h... yes
                      checking arpa/inet.h usability... yes
                      checking arpa/inet.h presence... yes
                      checking for arpa/inet.h... yes
                      checking fcntl.h usability... yes
                      checking fcntl.h presence... yes
                      checking for fcntl.h... yes
                      checking limits.h usability... yes
                      checking limits.h presence... yes
                      checking for limits.h... yes
                      checking netdb.h usability... yes
                      checking netdb.h presence... yes
                      checking for netdb.h... yes
                      checking netinet/in.h usability... yes
                      checking netinet/in.h presence... yes
                      checking for netinet/in.h... yes
                      checking for stdint.h... (cached) yes
                      checking for stdlib.h... (cached) yes
                      checking for string.h... (cached) yes
                      checking sys/ioctl.h usability... yes
                      checking sys/ioctl.h presence... yes
                      checking for sys/ioctl.h... yes
                      checking sys/param.h usability... yes
                      checking sys/param.h presence... yes
                      checking for sys/param.h... yes
                      checking sys/prctl.h usability... yes
                      checking sys/prctl.h presence... yes
                      checking for sys/prctl.h... yes
                      checking sys/socket.h usability... yes
                      checking sys/socket.h presence... yes
                      checking for sys/socket.h... yes
                      checking sys/time.h usability... yes
                      checking sys/time.h presence... yes
                      checking for sys/time.h... yes
                      checking syslog.h usability... yes
                      checking syslog.h presence... yes
                      checking for syslog.h... yes
                      checking for unistd.h... (cached) yes
                      checking for linux/netlink.h... yes
                      checking for linux/rtnetlink.h... yes
                      checking asm/types.h usability... yes
                      checking asm/types.h presence... yes
                      checking for asm/types.h... yes
                      checking linux/ethtool.h usability... yes
                      checking linux/ethtool.h presence... yes
                      checking for linux/ethtool.h... yes
                      checking linux/icmpv6.h usability... yes
                      checking linux/icmpv6.h presence... yes
                      checking for linux/icmpv6.h... yes
                      checking linux/if_ether.h usability... yes
                      checking linux/if_ether.h presence... yes
                      checking for linux/if_ether.h... yes
                      checking linux/if_packet.h usability... yes
                      checking linux/if_packet.h presence... yes
                      checking for linux/if_packet.h... yes
                      checking linux/ip.h usability... yes
                      checking linux/ip.h presence... yes
                      checking for linux/ip.h... yes
                      checking linux/sockios.h usability... yes
                      checking linux/sockios.h presence... yes
                      checking for linux/sockios.h... yes
                      checking linux/types.h usability... yes
                      checking linux/types.h presence... yes
                      checking for linux/types.h... yes
                      checking for linux/fib_rules.h... yes
                      checking for linux/if_addr.h... yes
                      checking for linux/if_link.h... yes
                      checking for linux/if_arp.h... yes
                      checking for stdbool.h that conforms to C99... yes
                      checking for _Bool... yes
                      checking for inline... inline
                      checking for int64_t... yes
                      checking for pid_t... yes
                      checking for size_t... yes
                      checking for uint16_t... yes
                      checking for uint32_t... yes
                      checking for uint64_t... yes
                      checking for uint8_t... yes
                      checking for an ANSI C-conforming const... yes
                      checking vfork.h usability... no
                      checking vfork.h presence... no
                      checking for vfork.h... no
                      checking for fork... yes
                      checking for vfork... yes
                      checking for working fork... yes
                      checking for working vfork... (cached) yes
                      checking for stdlib.h... (cached) yes
                      checking for GNU libc compatible malloc... yes
                      checking for stdlib.h... (cached) yes
                      checking for GNU libc compatible realloc... yes
                      checking for dup2... yes
                      checking for getcwd... yes
                      checking for gettimeofday... yes
                      checking for memmove... yes
                      checking for memset... yes
                      checking for select... yes
                      checking for setenv... yes
                      checking for socket... yes
                      checking for strcasecmp... yes
                      checking for strchr... yes
                      checking for strdup... yes
                      checking for strerror... yes
                      checking for strpbrk... yes
                      checking for strstr... yes
                      checking for strtol... yes
                      checking for strtoul... yes
                      checking for uname... yes
                      checking for pipe2... yes
                      checking for signalfd... yes
                      checking for inotify_init1... yes
                      checking whether ETHERTYPE_IPV6 is declared... yes
                      checking openssl/ssl.h usability... yes
                      checking openssl/ssl.h presence... yes
                      checking for openssl/ssl.h... yes
                      checking openssl/err.h usability... yes
                      checking openssl/err.h presence... yes
                      checking for openssl/err.h... yes
                      checking openssl/md5.h usability... yes
                      checking openssl/md5.h presence... yes
                      checking for openssl/md5.h... yes
                      checking for MD5_Init in -lcrypto... yes
                      checking for SSL_CTX_new in -lssl... yes
                      checking SSL_set_tlsext_host_name() - may be a definition... yes
                      checking for SSL_CTX_set_verify_depth... yes
                      checking for SSL_set0_rbio... no
                      checking for OPENSSL_init_crypto... no
                      checking for nl_socket_alloc in -lnl-3... yes
                      checking for genl_connect in -lnl-genl-3... yes
                      checking whether IPV4_DEVCONF_ARP_IGNORE is declared... no
                      checking whether IPV4_DEVCONF_ACCEPT_LOCAL is declared... no
                      checking whether IPV4_DEVCONF_RP_FILTER is declared... no
                      checking whether IPV4_DEVCONF_ARPFILTER is declared... no
                      checking for linux/rtnetlink.h... (cached) yes
                      checking libnfnetlink/libnfnetlink.h usability... yes
                      checking libnfnetlink/libnfnetlink.h presence... yes
                      checking for libnfnetlink/libnfnetlink.h... yes
                      checking netlink/netlink.h usability... yes
                      checking netlink/netlink.h presence... yes
                      checking for netlink/netlink.h... yes
                      checking netlink/genl/ctrl.h usability... yes
                      checking netlink/genl/ctrl.h presence... yes
                      checking for netlink/genl/ctrl.h... yes
                      checking netlink/genl/genl.h usability... yes
                      checking netlink/genl/genl.h presence... yes
                      checking for netlink/genl/genl.h... yes
                      checking for magic_open in -lmagic... yes
                      checking whether RTA_ENCAP is declared... no
                      checking whether RTA_EXPIRES is declared... no
                      checking whether RTA_NEWDST is declared... no
                      checking whether RTA_PREF is declared... no
                      checking whether FRA_SUPPRESS_PREFIXLEN is declared... no
                      checking whether FRA_SUPPRESS_IFGROUP is declared... no
                      checking whether FRA_TUN_ID is declared... no
                      checking whether RTAX_CC_ALGO is declared... no
                      checking whether RTAX_QUICKACK is declared... no
                      checking whether RTEXT_FILTER_SKIP_STATS is declared... no
                      checking whether FRA_L3MDEV is declared... no
                      checking whether FRA_UID_RANGE is declared... no
                      checking whether RTAX_FASTOPEN_NO_COOKIE is declared... no
                      checking whether RTA_VIA is declared... no
                      checking whether FRA_OIFNAME is declared... no
                      checking whether FRA_PROTOCOL is declared... no
                      checking whether FRA_IP_PROTO is declared... no
                      checking whether FRA_SPORT_RANGE is declared... no
                      checking whether FRA_DPORT_RANGE is declared... no
                      checking whether IFA_FLAGS is declared... no
                      checking whether IP_MULTICAST_ALL is declared... no
                      checking whether LWTUNNEL_ENCAP_MPLS is declared... no
                      checking whether LWTUNNEL_ENCAP_ILA is declared... no
                      checking linux/netfilter/x_tables.h usability... yes
                      checking linux/netfilter/x_tables.h presence... yes
                      checking for linux/netfilter/x_tables.h... yes
                      checking xtables.h usability... no
                      checking xtables.h presence... no
                      checking for xtables.h... no
                      checking for linux/if.h and net/if.h namespace collision... yes
                      checking for linux/if_ether.h then netinet/if_ether.h namespace collision... no
                      checking for libiptc/libiptc.h linux/if.h and net/if.h namespace collision... yes
                      checking linux/ip_vs.h usability... yes
                      checking linux/ip_vs.h presence... yes
                      checking for linux/ip_vs.h... yes
                      checking whether IP_VS_SVC_F_ONEPACKET is declared... yes
                      checking whether IPVS_DEST_ATTR_ADDR_FAMILY is declared... no
                      checking whether IPVS_DAEMON_ATTR_SYNC_MAXLEN is declared... no
                      checking whether IPVS_DAEMON_ATTR_MCAST_GROUP is declared... no
                      checking whether IPVS_DAEMON_ATTR_MCAST_GROUP6 is declared... no
                      checking whether IPVS_DAEMON_ATTR_MCAST_PORT is declared... no
                      checking whether IPVS_DAEMON_ATTR_MCAST_TTL is declared... no
                      checking whether IPVS_SVC_ATTR_STATS64 is declared... no
                      checking whether IPVS_DEST_ATTR_STATS64 is declared... no
                      checking whether IFLA_MACVLAN_MODE is declared... yes
                      checking whether MACVLAN_MODE_PRIVATE is declared... yes
                      checking whether SOCK_NONBLOCK is declared... yes
                      checking whether SOCK_CLOEXEC is declared... yes
                      checking whether IPVS_SVC_ATTR_PE_NAME is declared... yes
                      checking whether O_PATH is declared... no
                      checking whether GLOB_BRACE is declared... yes
                      checking whether FRA_SRC is declared... yes
                      checking whether IFLA_INET6_ADDR_GEN_MODE is declared... no
                      checking whether SO_MARK is declared... yes
                      checking whether CLONE_NEWNET is declared... yes
                      checking for setns... no
                      checking whether SCHED_RR is declared... yes
                      checking whether RLIMIT_RTTIME is declared... no
                      checking whether SCHED_RESET_ON_FORK is declared... yes
                      checking for sphinx-build... No
                      checking for rpm... Yes
                      checking for rpmbuild... Yes
                      
                      checking that generated files are newer than configure... done
                      configure: creating ./config.status
                      config.status: creating Makefile
                      config.status: creating keepalived/Makefile
                      config.status: creating lib/Makefile
                      config.status: creating keepalived/core/Makefile
                      config.status: creating keepalived.spec
                      config.status: creating genhash/Makefile
                      config.status: creating keepalived/check/Makefile
                      config.status: creating keepalived/vrrp/Makefile
                      config.status: creating keepalived/bfd/Makefile
                      config.status: creating doc/Makefile
                      config.status: creating bin_install/Makefile
                      config.status: creating keepalived/dbus/Makefile
                      config.status: creating keepalived/etc/Makefile
                      config.status: creating keepalived/etc/init/Makefile
                      config.status: creating keepalived/etc/init.d/Makefile
                      config.status: creating lib/config.h
                      config.status: lib/config.h is unchanged
                      config.status: executing depfiles commands
                      
                      Keepalived configuration
                      ------------------------
                      Keepalived version       : 2.0.5
                      Compiler                 : gcc
                      Preprocessor flags       :  -I/usr/include/libnl3 
                      Compiler flags           : -Wall -Wunused -Wstrict-prototypes -Wextra -Winit-self -g -D_GNU_SOURCE -fPIE -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -O2  
                      Linker flags             :  -pie
                      Extra Lib                :  -lcrypto  -lssl  -lnl-genl-3 -lnl-3  -lmagic
                      Use IPVS Framework       : Yes
                      IPVS use libnl           : Yes
                      IPVS syncd attributes    : No
                      IPVS 64 bit stats        : No
                      fwmark socket support    : Yes
                      Use VRRP Framework       : Yes
                      Use VRRP VMAC            : Yes
                      Use VRRP authentication  : Yes
                      With ip rules/routes     : Yes
                      Use BFD Framework        : No
                      SNMP vrrp support        : No
                      SNMP checker support     : No
                      SNMP RFCv2 support       : No
                      SNMP RFCv3 support       : No
                      DBUS support             : No
                      SHA1 support             : No
                      Use Json output          : No
                      libnl version            : 3
                      Use IPv4 devconf         : No
                      Use libiptc              : No
                      Use libipset             : No
                      init type                : upstart
                      Build genhash            : Yes
                      Build documentation      : No
                      Making all in lib
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/lib'
                      make  all-am
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/lib'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/lib'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/lib'
                      Making all in keepalived
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/keepalived'
                      Making all in core
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/core'
                      make[2]: Nothing to be done for `all'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/core'
                      Making all in vrrp
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      make[2]: Nothing to be done for `all'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      Making all in check
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/check'
                      make[2]: Nothing to be done for `all'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/check'
                      Making all in etc
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      Making all in init
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                        EDIT     keepalived.conf
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                      Making all in init.d
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[3]: Nothing to be done for `all'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[3]: Nothing to be done for `all-am'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived'
                      make[2]: Nothing to be done for `all-am'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/keepalived'
                      Making all in doc
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/doc'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/doc'
                      Making all in genhash
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/genhash'
                      make[1]: Nothing to be done for `all'.
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/genhash'
                      Making all in bin_install
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/bin_install'
                      make[1]: Nothing to be done for `all'.
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/bin_install'
                      make[1]: Entering directory `/tmp/keepalived-2.0.5'
                      make[1]: Nothing to be done for `all-am'.
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5'
                      Making install in lib
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/lib'
                      make  install-am
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/lib'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/lib'
                      make[3]: Nothing to be done for `install-exec-am'.
                      make[3]: Nothing to be done for `install-data-am'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/lib'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/lib'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/lib'
                      Making install in keepalived
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/keepalived'
                      Making install in core
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/core'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/core'
                      make[3]: Nothing to be done for `install-exec-am'.
                      make[3]: Nothing to be done for `install-data-am'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/core'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/core'
                      Making install in vrrp
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      make[3]: Nothing to be done for `install-exec-am'.
                      make[3]: Nothing to be done for `install-data-am'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/vrrp'
                      Making install in check
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/check'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/check'
                      make[3]: Nothing to be done for `install-exec-am'.
                      make[3]: Nothing to be done for `install-data-am'.
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/check'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/check'
                      Making install in etc
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      Making install in init
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                      make[4]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                      make[4]: Nothing to be done for `install-exec-am'.
                       /bin/mkdir -p '/export/servers/keepalived/etc/init'
                       /usr/bin/install -c -m 644 keepalived.conf '/export/servers/keepalived/etc/init'
                      make[4]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init'
                      Making install in init.d
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[4]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[4]: Nothing to be done for `install-exec-am'.
                      make[4]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc/init.d'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[4]: Entering directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[4]: Nothing to be done for `install-exec-am'.
                      make[4]: Nothing to be done for `install-data-am'.
                      make[4]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived/etc'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/keepalived'
                      make[3]: Entering directory `/tmp/keepalived-2.0.5/keepalived'
                       /bin/mkdir -p '/export/servers/keepalived/sbin'
                        /usr/bin/install -c keepalived '/export/servers/keepalived/sbin'
                       /bin/mkdir -p '/export/servers/keepalived/etc/keepalived'
                       /usr/bin/install -c -m 644 etc/keepalived/keepalived.conf '/export/servers/keepalived/etc/keepalived'
                       /bin/mkdir -p '/export/servers/keepalived/etc/sysconfig'
                       /usr/bin/install -c -m 644 etc/sysconfig/keepalived '/export/servers/keepalived/etc/sysconfig'
                      make[3]: Leaving directory `/tmp/keepalived-2.0.5/keepalived'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/keepalived'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/keepalived'
                      Making install in doc
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/doc'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/doc'
                      make[2]: Nothing to be done for `install-exec-am'.
                       /bin/mkdir -p '/export/servers/keepalived/share/man/man1'
                       /usr/bin/install -c -m 644 man/man1/genhash.1 '/export/servers/keepalived/share/man/man1'
                       /bin/mkdir -p '/export/servers/keepalived/share/man/man5'
                       /usr/bin/install -c -m 644 man/man5/keepalived.conf.5 '/export/servers/keepalived/share/man/man5'
                       /bin/mkdir -p '/export/servers/keepalived/share/man/man8'
                       /usr/bin/install -c -m 644 man/man8/keepalived.8 '/export/servers/keepalived/share/man/man8'
                       /bin/mkdir -p '/export/servers/keepalived/share/snmp/mibs'
                       /bin/mkdir -p '/export/servers/keepalived/etc/keepalived/samples'
                       /usr/bin/install -c -m 644 ./samples/client.pem ./samples/dh1024.pem ./samples/keepalived.conf.HTTP_GET.port ./samples/keepalived.conf.IPv6 ./samples/keepalived.conf.SMTP_CHECK ./samples/keepalived.conf.SSL_GET ./samples/keepalived.conf.conditional_conf ./samples/keepalived.conf.fwmark ./samples/keepalived.conf.inhibit ./samples/keepalived.conf.misc_check ./samples/keepalived.conf.misc_check_arg ./samples/keepalived.conf.quorum ./samples/keepalived.conf.sample ./samples/keepalived.conf.status_code ./samples/keepalived.conf.track_interface ./samples/keepalived.conf.virtual_server_group ./samples/keepalived.conf.virtualhost ./samples/keepalived.conf.vrrp ./samples/keepalived.conf.vrrp.localcheck ./samples/keepalived.conf.vrrp.lvs_syncd ./samples/keepalived.conf.vrrp.routes ./samples/keepalived.conf.vrrp.rules ./samples/keepalived.conf.vrrp.scripts ./samples/keepalived.conf.vrrp.static_ipaddress ./samples/keepalived.conf.vrrp.sync ./samples/root.pem ./samples/sample.misccheck.smbcheck.sh ./samples/sample_notify_fifo.sh '/export/servers/keepalived/etc/keepalived/samples'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/doc'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/doc'
                      Making install in genhash
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/genhash'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/genhash'
                       /bin/mkdir -p '/export/servers/keepalived/bin'
                        /usr/bin/install -c genhash '/export/servers/keepalived/bin'
                      make[2]: Nothing to be done for `install-data-am'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/genhash'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/genhash'
                      Making install in bin_install
                      make[1]: Entering directory `/tmp/keepalived-2.0.5/bin_install'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5/bin_install'
                      make[2]: Nothing to be done for `install-exec-am'.
                      make[2]: Nothing to be done for `install-data-am'.
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5/bin_install'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5/bin_install'
                      make[1]: Entering directory `/tmp/keepalived-2.0.5'
                      make[2]: Entering directory `/tmp/keepalived-2.0.5'
                      make[2]: Nothing to be done for `install-exec-am'.
                       /bin/mkdir -p '/export/servers/keepalived/share/doc/keepalived'
                       /usr/bin/install -c -m 644 README '/export/servers/keepalived/share/doc/keepalived'
                      make[2]: Leaving directory `/tmp/keepalived-2.0.5'
                      make[1]: Leaving directory `/tmp/keepalived-2.0.5'
    ----------
              ID: keepalived-init
        Function: file.managed
            Name: /etc/init.d/keepalived
          Result: True
         Comment: File /etc/init.d/keepalived is in the correct state
         Started: 15:52:33.761820
        Duration: 21.004 ms
         Changes:   
    ----------
              ID: keepalived-init
        Function: cmd.run
            Name: chkconfig --add keepalived
          Result: True
         Comment: Command "chkconfig --add keepalived" run
         Started: 15:52:33.784668
        Duration: 369.001 ms
         Changes:   
                  ----------
                  pid:
                      66459
                  retcode:
                      0
                  stderr:
                  stdout:
    ----------
              ID: /etc/sysconfig/keepalived
        Function: file.managed
          Result: True
         Comment: File /etc/sysconfig/keepalived is in the correct state
         Started: 15:52:34.154188
        Duration: 61.7 ms
         Changes:   
    ----------
              ID: /export/servers/keepalived
        Function: file.directory
          Result: True
         Comment: The directory /export/servers/keepalived is in the correct state
         Started: 15:52:34.216258
        Duration: 1.811 ms
         Changes:   
    ----------
              ID: keepalived-service
        Function: file.managed
            Name: /export/servers/keepalived/etc/keepalived/keepalived.conf
          Result: True
         Comment: File /export/servers/keepalived/etc/keepalived/keepalived.conf updated
         Started: 15:52:34.218318
        Duration: 44.894 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -1,157 +1,24 @@
                       ! Configuration File for keepalived
                      -
                       global_defs {
                          notification_email {
                      -     acassen@firewall.loc
                      -     failover@firewall.loc
                      -     sysadmin@firewall.loc
                      +     saltstack@example.com
                          }
                      -   notification_email_from Alexandre.Cassen@firewall.loc
                      -   smtp_server 192.168.200.1
                      +   notification_email_from keepalived@example.com
                      +   smtp_server 127.0.0.1
                          smtp_connect_timeout 30
                      -   router_id LVS_DEVEL
                      -   vrrp_skip_check_adv_addr
                      -   vrrp_strict
                      -   vrrp_garp_interval 0
                      -   vrrp_gna_interval 0
                      +   router_id haproxy_ha
                       }
                      -
                      -vrrp_instance VI_1 {
                      -    state MASTER
                      -    interface eth0
                      -    virtual_router_id 51
                      -    priority 100
                      +vrrp_instance haproxy_ha {
                      +state MASTER
                      +interface eth0
                      +    virtual_router_id 36
                      +priority 150
                           advert_int 1
                      -    authentication {
                      -        auth_type PASS
                      +authentication {
                      +auth_type PASS
                               auth_pass 1111
                           }
                           virtual_ipaddress {
                      -        192.168.200.16
                      -        192.168.200.17
                      -        192.168.200.18
                      +       10.182.76.78
                           }
                       }
                      -
                      -virtual_server 192.168.200.100 443 {
                      -    delay_loop 6
                      -    lb_algo rr
                      -    lb_kind NAT
                      -    persistence_timeout 50
                      -    protocol TCP
                      -
                      -    real_server 192.168.201.100 443 {
                      -        weight 1
                      -        SSL_GET {
                      -            url {
                      -              path /
                      -              digest ff20ad2481f97b1754ef3e12ecd3a9cc
                      -            }
                      -            url {
                      -              path /mrtg/
                      -              digest 9b3a0c85a887a256d6939da88aabd8cd
                      -            }
                      -            connect_timeout 3
                      -            retry 3
                      -            delay_before_retry 3
                      -        }
                      -    }
                      -}
                      -
                      -virtual_server 10.10.10.2 1358 {
                      -    delay_loop 6
                      -    lb_algo rr
                      -    lb_kind NAT
                      -    persistence_timeout 50
                      -    protocol TCP
                      -
                      -    sorry_server 192.168.200.200 1358
                      -
                      -    real_server 192.168.200.2 1358 {
                      -        weight 1
                      -        HTTP_GET {
                      -            url {
                      -              path /testurl/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl2/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl3/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            connect_timeout 3
                      -            retry 3
                      -            delay_before_retry 3
                      -        }
                      -    }
                      -
                      -    real_server 192.168.200.3 1358 {
                      -        weight 1
                      -        HTTP_GET {
                      -            url {
                      -              path /testurl/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334c
                      -            }
                      -            url {
                      -              path /testurl2/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334c
                      -            }
                      -            connect_timeout 3
                      -            retry 3
                      -            delay_before_retry 3
                      -        }
                      -    }
                      -}
                      -
                      -virtual_server 10.10.10.3 1358 {
                      -    delay_loop 3
                      -    lb_algo rr
                      -    lb_kind NAT
                      -    persistence_timeout 50
                      -    protocol TCP
                      -
                      -    real_server 192.168.200.4 1358 {
                      -        weight 1
                      -        HTTP_GET {
                      -            url {
                      -              path /testurl/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl2/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl3/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            connect_timeout 3
                      -            retry 3
                      -            delay_before_retry 3
                      -        }
                      -    }
                      -
                      -    real_server 192.168.200.5 1358 {
                      -        weight 1
                      -        HTTP_GET {
                      -            url {
                      -              path /testurl/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl2/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            url {
                      -              path /testurl3/test.jsp
                      -              digest 640205b7b0fc66c1ea91c463fac6334d
                      -            }
                      -            connect_timeout 3
                      -            retry 3
                      -            delay_before_retry 3
                      -        }
                      -    }
                      -}
    ----------
              ID: keepalived-service
        Function: service.running
            Name: keepalived
          Result: False
         Comment: Service keepalived has been enabled, and is dead
         Started: 15:52:34.264736
        Duration: 3058.79 ms
         Changes:   
                  ----------
                  keepalived:
                      True
    
    Summary for 10.182.88.136
    -------------
    Succeeded: 39 (changed=4)
    Failed:     1
    -------------
    Total states run:     40
    Total run time:   22.481 s
    View Code

    部署安装都没有问题,服务启动有问题,后指定keepalived.conf路径启动成功。

    daemon /export/servers/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS} -f /export/servers/keepalived/etc/keepalived/keepalived.conf

    [root@SaltMaster1(10.182.88.136)]$~:>/export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    [root@SaltMaster1(10.182.88.136)]$~:>ps -ef |grep keep
    root      68112      1  0 16:11 ?        00:00:00 /export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    root      68114  68112  0 16:11 ?        00:00:00 /export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    root      68124  46668  0 16:11 pts/0    00:00:00 grep --color keep
    ——————————————————————
    [root@SaltMinion2(10.182.76.78)]$keepalived:>/export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    [root@SaltMinion2(10.182.76.78)]$keepalived:>ps -ef 
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 Jun15 ?        00:00:00 sh start.sh
    root         39      1  0 Jun15 ?        00:00:05 crond
    root         55      1  0 Jun15 ?        00:00:03 /usr/sbin/sshd
    root         57      1  0 Jun15 ?        00:00:00 sleep 9999999d
    nscd         79      1  0 Jun15 ?        00:00:26 /usr/sbin/nscd
    root       8833      0  0 Jun15 ?        00:00:00 /bin/sh -i
    root      49471      1  0 Jun19 ?        00:00:21 /usr/bin/python2.7 /usr/bin/salt-minion -c /etc/salt -d
    root      81324      1  0 Jun24 ?        00:12:21 /usr/bin/python2.7 /usr/bin/salt-minion -c /etc/salt -d
    nobody   122107      1  0 Jun29 ?        00:02:22 /export/servers/haproxy1.8.12/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
    root     271784     55  0 15:28 ?        00:00:00 sshd: root@pts/0 
    root     271787 271784  0 15:28 pts/0    00:00:00 -bash
    root     273243      1  0 16:10 ?        00:00:00 /export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    root     273244 273243  0 16:10 ?        00:00:00 /export//servers/keepalived/sbin/keepalived -D -f /export/servers/keepalived/etc/keepalived/keepalived.conf
    root     273254 271787  0 16:10 pts/0    00:00:00 ps -ef
    [root@SaltMinion2(10.182.76.78)]$keepalived:>

    附件:

    /etc/rc.d/init.d/keepalived

    [root@SaltMinion2(10.182.76.78)]$keepalived:>more /etc/rc.d/init.d/keepalived 
    #!/bin/sh
    #
    # Startup script for the Keepalived daemon
    #
    # processname: keepalived
    # pidfile: /var/run/keepalived.pid
    # config: /etc/keepalived/keepalived.conf
    # chkconfig: - 21 79
    # description: Start and stop Keepalived
    
    # Source function library
    . /etc/rc.d/init.d/functions
    
    # Source configuration file (we set KEEPALIVED_OPTIONS there)
    . /etc/sysconfig/keepalived
    
    RETVAL=0
    
    prog="keepalived"
    
    start() {
        echo -n $"Starting $prog: "
        daemon /export/servers/keepalived/sbin/keepalived ${KEEPALIVED_OPTIONS} -f /export/servers/keepalived/etc/keepalived/keepalived.conf
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc keepalived
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    }
    
    reload() {
        echo -n $"Reloading $prog: "
        killproc keepalived -1
        RETVAL=$?
        echo
    }
    
    # See how we were called.
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        reload)
            reload
            ;;
        restart)
            stop
            start
            ;;
        condrestart)
            if [ -f /var/lock/subsys/$prog ]; then
                stop
                start
            fi
            ;;
        status)
            status keepalived
            RETVAL=$?
            ;;
        *)
            echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
            RETVAL=1
    esac
    
    exit $RETVAL
    View Code

    /export/servers/keepalived/etc/keepalived/keepalived.conf 

    [root@SaltMinion2(10.182.76.78)]$keepalived:>more  /export/servers/keepalived/etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         saltstack@example.com
       }
       notification_email_from keepalived@example.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id haproxy_ha
    }
    vrrp_instance haproxy_ha {
      state BACKUP #
      interface eth0
      virtual_router_id 36
      priority 100
      advert_int 1
      authentication {
        auth_type PASS
        auth_pass 1111
      }
      virtual_ipaddress {
        10.182.76.77
      }
    }
    View Code
  • 相关阅读:
    洛谷春季多校第四场
    HZNU Training 8 for Zhejiang Provincial Competition 2020
    HZNU Training 6 for Zhejiang Provincial Competition 2020
    二分图
    HZNU Training 5 for Zhejiang Provincial Competition 2020
    洛谷春季 ACM 多校训练第二周
    HZNU Training 2 for Zhejiang Provincial Competition 2020
    TestNG入门教程-12-Java代码执行testng.xml和失败后重跑
    eclipse导出可执行jar包步骤
    创建可执行的JAR包并运行
  • 原文地址:https://www.cnblogs.com/zuoyang/p/9244837.html
Copyright © 2020-2023  润新知