《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
[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
部署安装都没有问题,服务启动有问题,后指定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
/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 } }