利用saltstack管理工具实现keeplived高可用

keeplived高可用

[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# ls
_grains  haproxy  httpd  nginx  pkgs  top.sls  users
[root@server1 salt]# mkdir keepalived
[root@server1 salt]# ls
_grains  haproxy  httpd  keepalived  nginx  pkgs  top.sls  users
[root@server1 salt]# cd keepalived/
[root@server1 keepalived]# ls
[root@server1 keepalived]# mkdir files
[root@server1 keepalived]# ls
files
[root@server1 keepalived]# cd files/
[root@server1 files]# pwd
/srv/salt/keepalived/files

[root@foundation52 kiosk]# scp keepalived-2.0.6.tar.gz server1:/srv/salt/keepalived/files
root@server1's password: 
keepalived-2.0.6.tar.gz                        100%  834KB 833.9KB/s   00:00 

[root@server1 files]# pwd
/srv/salt/keepalived/files
[root@server1 files]# ls
keepalived-2.0.6.tar.gz
[root@server1 files]# cd
[root@server1 keepalived]# vim install.sls
##########################
  1 include:
  2   - pkgs.make
  3 
  4 kp-install:
  5   file.managed:
  6     - name: /mnt/keepalived-2.0.6.tar.gz
  7     - source: salt://keepalived/files/keepalived-2.0.6.tar.gz
  8   cmd.run:
  9     - name: cd /mnt && tar zxf keepalived-2.0.6.tar.gz && cd keepalived-2.0.6     && ./configure --prefix=/usr/local/keepalived --with-init=SYSV &> /dev/null     && make &> /dev/null && make install &> /dev/null
 10     - creates: /usr/local/keepalived

这里写图片描述

[root@server1 keepalived]# salt server4 state.sls keepalived.install
测试:
##在推送过程中查看到正在编译
[root@server4 mnt]# ps -ax
...............
 5608 ?        S      0:00 make
 5609 ?        S      0:00 /bin/sh -c fail=; \?if (target_option=k; case ${target
 5694 ?        S      0:00 /bin/sh -c fail=; \?if (target_option=k; case ${target
 5695 ?        S      0:00 make all
 5696 ?        S      0:00 /bin/sh -c fail=; \?if (target_option=k; case ${target
 5759 ?        S      0:00 /bin/sh -c fail=; \?if (target_option=k; case ${target
 5760 ?        S      0:00 make all
 5782 ?        S      0:00 /bin/sh -c echo "  CC      " vrrp.o;gcc -DHAVE_CONFIG_
 5783 ?        S      0:00 gcc -DHAVE_CONFIG_H -I. -I../../lib -I./../include -I.
 5791 pts/0    R+     0:00 ps -ax
 5792 ?        R      0:00 as -Qy -o vrrp.o /tmp/ccu9OxBU.s
##推送完成后查看到编译完成
[root@server4 mnt]# ps -ax
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
  PID TTY      STAT   TIME COMMAND
  .................
 1431 ?        S      0:00 pickup -l -t fifo -u
 1432 ?        Ss     0:00 sshd: root@pts/0 
 1434 pts/0    Ss     0:00 -bash
 1781 ?        Sl     0:06 /usr/bin/python2.6 /usr/bin/salt-minion -c /etc/salt -
 1782 ?        S      0:00 /usr/bin/python2.6 /usr/bin/salt-minion -c /etc/salt -
 6250 pts/0    R+     0:00 ps -ax
[root@server4 mnt]# ll -d /usr/local/keepalived/
drwxr-xr-x 6 root root 4096 Aug 18 11:15 /usr/local/keepalived/
[root@server4 mnt]# ls
keepalived-2.0.6  keepalived-2.0.6.tar.gz
[root@server4 mnt]# cd /usr/local/keepalived/
[root@server4 keepalived]# ls
bin  etc  sbin  share
[root@server4 init.d]# pwd
/usr/local/keepalived/etc/rc.d/init.d
[root@server4 init.d]# ls
keepalived
[root@server4 init.d]# scp keepalived  server1:/srv/salt/keepalived/files
The authenticity of host 'server1 (172.25.52.1)' can't be established.
RSA key fingerprint is fc:68:3f:d9:a8:07:dd:06:20:09:b5:02:fb:33:a9:99.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server1,172.25.52.1' (RSA) to the list of known hosts.
root@server1's password: 
keepalived                                     100% 1308     1.3KB/s   00:00 

[root@server4 keepalived]# pwd
/usr/local/keepalived/etc/keepalived
[root@server4 keepalived]# ls
keepalived.conf  samples
[root@server4 keepalived]# scp keepalived.conf server1:/srv/salt/keepalived/files
root@server1's password: 
keepalived.conf                                100% 3550     3.5KB/s   00:00    
[root@server1 keepalived]# vim install.sls
##########################
  1 include:
  2   - pkgs.make
  3 
  4 kp-install:
  5   file.managed:
  6     - name: /mnt/keepalived-2.0.6.tar.gz
  7     - source: salt://keepalived/files/keepalived-2.0.6.tar.gz
  8   cmd.run:
  9     - name: cd /mnt && tar zxf keepalived-2.0.6.tar.gz && cd keepalived-2.0.6     && ./configure --prefix=/usr/local/keepalived --with-init=SYSV &> /dev/null     && make &> /dev/null && make install &> /dev/null
 10     - creates: /usr/local/keepalived
 11 
 12 /etc/keepalived:
 13   file.directory:
 14     - mode: 755
 15 
 16 /etc/sysconfig/keepalived:
 ##symlink 表示软连接
 17   file.symlink:
 ##target 表示目标
 18     - target: /usr/local/keepalived/etc/sysconfig/keepalived
 19 
 20 /sbin/keepalived:
 21   file.symlink:
 22     - target: /usr/local/keepalived/sbin/keepalived

这里写图片描述

[root@server1 keepalived]# salt server4 state.sls keepalived.install
##测试:
[root@server4 sbin]# pwd
/usr/local/keepalived/sbin
[root@server4 sbin]# ls
keepalived
[root@server4 sbin]# ll keepalived 
-rwxr-xr-x 1 root root 1652046 Aug 18 11:15 keepalived
[root@server4 sbin]# ll /usr/local/keepalived/etc/sysconfig/keepalived 
-rw-r--r-- 1 root root 667 Aug 18 11:15 /usr/local/keepalived/etc/sysconfig/keepalived
[root@server4 sbin]# cd /etc/keepalived/
[root@server4 keepalived]# ll /etc/sysconfig/ke
keepalived  kernel      keyboard    
[root@server4 keepalived]# ll /etc/sysconfig/keepalived 
lrwxrwxrwx 1 root root 46 Aug 18 11:15 /etc/sysconfig/keepalived -> /usr/local/keepalived/etc/sysconfig/keepalived
[root@server4 keepalived]# ll /sbin/keepalived 
lrwxrwxrwx 1 root root 37 Aug 18 11:15 /sbin/keepalived -> /usr/local/keepalived/sbin/keepalived
[root@server1 keepalived]# cd /srv/pillar/
[root@server1 pillar]# ls
top.sls  web
[root@server1 pillar]# cd web/
[root@server1 web]# ls
install.sls
##查看文件
[root@server1 web]# vim install.sls 
[root@server1 web]# cd ..
[root@server1 pillar]# ls
top.sls  web
[root@server1 pillar]# mkdir keepalived
[root@server1 pillar]# cd keepalived/
[root@server1 keepalived]# ls
##创建文件
[root@server1 keepalived]# vim install.sls
[root@server1 keepalived]# pwd
/srv/pillar/keepalived
[root@server1 keepalived]# cp ../web/install.sls .
cp: overwrite `./install.sls'? yes
##更改文件
[root@server1 keepalived]# vim install.sls
#########################
  1 {% if grains['fqdn'] == 'server1' %}
  2 state: MASTER
  3 vird: 11
  4 priority: 100
  5 {% elif grains['fqdn'] == 'server4' %}
  6 state: BACKUP
  7 vird: 11
  8 priority: 50
  9 {% endif %}
[root@server1 pillar]# pwd
/srv/pillar
[root@server1 pillar]# ls
keepalived  top.sls  web
[root@server1 pillar]# vim top.sls 
######################
  1 base:
  2   '*':
  3     - web.install
  4     - keepalived.install

[root@server1 keepalived]# pwd
/srv/salt/keepalived
[root@server1 keepalived]# ls
files  install.sls  service.sls
[root@server1 keepalived]# vim service.sls 
##########################
  1 include:
  2   - keepalived.install
  3 
  4 /etc/keepalived/keepalived.conf:
  5   file.managed:
  6     - source: salt://keepalived/files/keepalived.conf
  7     - template: jinja   ##添加模块
  8     - context:
  9         STATE: {{ pillar['state'] }}
 10         VRID: {{ pillar['vird'] }}
 11         PRIORITY: {{ pillar['priority'] }}
 12 
 13 kp-service:
 14   file.managed:
 15     - name: /etc/init.d/keepalived
 16     - source: salt://keepalived/files/keepalived
 17     - mode: 755
 18   service.running:
 19     - name: keepalived
 20     - reload: True
 21     - watch:
 22       - file: /etc/keepalived/keepalived.conf

这里写图片描述

[root@server1 keepalived]# pwd
/srv/salt/keepalived
[root@server1 keepalived]# vim service.sls 
##########################
  3 global_defs {
  4    notification_email {
  5          root@localhost
  6   }
  7    notification_email_from keepalived@localhost
  8    smtp_server 127.0.0.1
  9    smtp_connect_timeout 30
 10    router_id LVS_DEVEL
 11    vrrp_skip_check_adv_addr
 12    #vrrp_strict
 13    vrrp_garp_interval 0
 14    vrrp_gna_interval 0
 15 }

 17 vrrp_instance VI_1 {
 18     state {{ STATE}}
 19     interface eth0
 20     virtual_router_id {{ VRID }}
 21     priority {{ PRIORITY  }}
 22     advert_int 1
 23     authentication {
 24         auth_type PASS
 25         auth_pass 1111
 26     }
 27     virtual_ipaddress {
 28         172.25.52.100
 29     }
 30 }

这里写图片描述
这里写图片描述

[root@server1 keepalived]# salt server4 state.sls keepalived.service
测试:
[root@server4 keepalived]# pwd
/etc/keepalived
[root@server4 keepalived]# ls
keepalived.conf
[root@server4 keepalived]# ll /etc/init.d/keepalived 
-rwxr-xr-x 1 root root 1308 Aug 18 12:46 /etc/init.d/keepalived
[root@server4 keepalived]# ps ax
  PID TTY      STAT   TIME COMMAND
  ...................
 6381 ?        Ss     0:00 keepalived -D
 6384 ?        S      0:00 keepalived -D
 6412 pts/0    R+     0:00 ps ax
##查看到vip 172.25.52.100
[root@server4 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:1f:e1:e4 brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.4/24 brd 172.25.52.255 scope global eth0
    inet 172.25.52.100/32 scope global eth0
    inet6 fe80::5054:ff:fe1f:e1e4/64 scope link 
       valid_lft forever preferred_lft forever
[root@server4 keepalived]# yum list mailx
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Available Packages
mailx.x86_64                        12.4-7.el6                        rhel-source
[root@server4 keepalived]# yum install mailx -y 
[root@server1 keepalived]# yum install mailx -y 
[root@server1 salt]# pwd
/srv/salt
[root@server1 salt]# vim top.sls 
####################
  1 base:
  2   'server1':
  3      - haproxy.install
  4      - keepalived.service
  5   'server4':
  6      - haproxy.install
  7      - keepalived.service
  8   'server2':
  9      - httpd.install
 10   'server3':
 11      - nginx.service

这里写图片描述

[root@server1 salt]# salt '*' state.highstate
##测试:
##vip跳转到server1上
[root@server1 salt]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:95:83:3a brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.1/24 brd 172.25.52.255 scope global eth0
    inet 172.25.52.100/32 scope global eth0
    inet6 fe80::5054:ff:fe95:833a/64 scope link 
       valid_lft forever preferred_lft forever
[root@server4 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:1f:e1:e4 brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.4/24 brd 172.25.52.255 scope global eth0
    inet6 fe80::5054:ff:fe1f:e1e4/64 scope link 
       valid_lft forever preferred_lft forever
##查看到keeplived进程       
[root@server1 salt]# ps ax
  PID TTY      STAT   TIME COMMAND
21283 ?        Ss     0:00 keepalived -D
21285 ?        S      0:00 keepalived -D
22994 pts/0    R+     0:00 ps ax

测试:
这里写图片描述
这里写图片描述

[root@server1 salt]# /etc/init.d/keepalived  stop
Stopping keepalived:                                       [  OK  ]

测试:
即使关闭server1的keepalived(模拟server1被破坏) 此时仍然可以实现负载均衡 即为高可用

##server1坏掉后 vip自动跳转到server4上
[root@server1 salt]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:95:83:3a brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.1/24 brd 172.25.52.255 scope global eth0
    inet6 fe80::5054:ff:fe95:833a/64 scope link 
       valid_lft forever preferred_lft forever
[root@server4 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:1f:e1:e4 brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.4/24 brd 172.25.52.255 scope global eth0
    inet 172.25.52.100/32 scope global eth0
    inet6 fe80::5054:ff:fe1f:e1e4/64 scope link 
       valid_lft forever preferred_lft forever
[root@server1 salt]# /etc/init.d/keepalived  start
Starting keepalived:                                       [  OK  ]
测试:
##此时vip又会跳转到server1上
[root@server1 salt]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:95:83:3a brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.1/24 brd 172.25.52.255 scope global eth0
    inet 172.25.52.100/32 scope global eth0
    inet6 fe80::5054:ff:fe95:833a/64 scope link 
       valid_lft forever preferred_lft forever
[root@server4 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:1f:e1:e4 brd ff:ff:ff:ff:ff:ff
    inet 172.25.52.4/24 brd 172.25.52.255 scope global eth0
    inet6 fe80::5054:ff:fe1f:e1e4/64 scope link 
       valid_lft forever preferred_lft forever       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值