Saltstack 实现keepalived高可用

实验环境

系统: CentOS 7

server1 172.25.41.1 salt-master

server4 172.25.41.4 salt-minion

[root@server4 ~]# vim /etc/yum.repos.d/rhel-source.repo 

[root@server4 ~]# yum repolist
[root@server4 etc]# yum install -y salt-minion
[root@server4 etc]# cd salt/
[root@server4 salt]# vim minion
16 master: 172.25.41.1
[root@server4 salt]# /etc/init.d/salt-minion start
[root@server1 ~]# salt-key -L
[root@server1 ~]# salt-key -a server4    #分发server4密钥
[root@server1 ~]# salt-key -L

这里写图片描述
配置yum源高可用

[root@server4 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.41.250/source6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[saltsack]
name=saltsack
baseurl=http://172.25.41.250/rhel6
enabled=1
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.41.250/source6.5/LoadBalancer
gpgcheck=0
[root@server4 ~]# yum repolist

这里写图片描述

一·安装keepalived

[root@server1 ~]# ls
keepalived-2.0.6.tar.gz
[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# ls
_grains  haproxy  httpd  nginx  pkgs  top.sls  users
[root@server1 salt]# mkdir keepalived
[root@server1 salt]# cd keepalived/
[root@server1 keepalived]# mkdir files
[root@server1 keepalived]# cd files/
[root@server1 files]# mv /root/keepalived-2.0.6.tar.gz  .
[root@server1 files]# ls
keepalived-2.0.6.tar.gz
[root@server1 files]# cd ..
[root@server1 keepalived]# vim install.sls
include:
  - pkgs.make

kp-install:
  file.managed:
    - name: /mnt/keepalived-2.0.6.tar.gz
    - source: salt://keepalived/files/keepalived-2.0.6.tar.gz
  cmd.run:
    - 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
    - creates: /usr/local/keepalived

[root@server1 keepalived]# salt server4 state.sls keepalived.install   #推送

server4 查看进程
这里写图片描述
这里写图片描述

将server4上的配置文件传给server1

[root@server4 ~]# ll -d /usr/local/keepalived/    
drwxr-xr-x 6 root root 4096 Aug 18 10:00 /usr/local/keepalived/
[root@server4 ~]# cd /mnt/     #查看是否安装成功
[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 keepalived]# cd etc/
[root@server4 etc]# cd rc.d/
[root@server4 rc.d]# cd init.d/
[root@server4 init.d]# ls
keepalived
[root@server4 init.d]# scp keepalived server1:/srv/salt/keepalived/files/   #配置文件传给server1
[root@server4 init.d]# cd ..
[root@server4 rc.d]# cd ..
[root@server4 etc]# ls
keepalived  rc.d  sysconfig
[root@server4 etc]# cd keepalived/
[root@server4 keepalived]# ls
keepalived.conf  samples
[root@server4 keepalived]# scp keepalived.conf server1:/srv/salt/keepalived/files/

这里写图片描述

二·做链接

[root@server1 keepalived]# vim install.sls
/etc/keepalived:
  file.directory:
    - mode: 755

/etc/sysconfig/keepalived:
  file.symlink:
    - target: /usr/local/keepalived/etc/sysconfig/keepalived

/sbin/keepalived:
  file.symlink:
    - target: /usr/local/keepalived/sbin/keepalived

[root@server1 keepalived]# salt server4 state.sls keepalived.install   #推送

这里写图片描述
server4 查看
这里写图片描述

三·编辑执行脚本

[root@server1 keepalived]# cd /srv/pillar/
[root@server1 pillar]# ls
top.sls  web
[root@server1 pillar]# cd web/
[root@server1 web]# cd ..
[root@server1 pillar]# mkdir keepalived
[root@server1 pillar]# cd keepalived/
[root@server1 keepalived]# cp ../web/install.sls .
[root@server1 keepalived]# vim install.sls 
[root@server1 keepalived]# cat install.sls 
{% if grains['fqdn'] == 'server1' %}
state: MASTER
vrid: 41
priority: 100
{% elif grains['fqdn'] == 'server4' %}
state: BACKUP
vrid: 41
priority: 50
{% endif %}
[root@server1 keepalived]# cd ..
[root@server1 pillar]# ls
keepalived  top.sls  web
[root@server1 pillar]# vim top.sls
[root@server1 pillar]# cat top.sls 
base:
  '*':
    - web.install
    - keepalived.install

这里写图片描述

[root@server1 pillar]# vim /srv/salt/keepalived/service.sls
include:
  - keepalived.install

/etc/keepalived/keepalived.conf:
  file.managed:
    - source: salt://keepalived/files/keepalived.conf
    - template: jinja
    - context:
        STATE: {{ pillar['state'] }}
        VRID: {{ pillar['vrid'] }}
        PRIORITY: {{ pillar['priority'] }}

kp-service:
  file.managed:
    - name: /etc/init.d/keepalived
    - source: salt://keepalived/files/keepalived
    - mode: 755
  service.running:
    - name: keepalived
    - reload: True
    - watch:
      - file: /etc/keepalived/keepalived.conf

[root@server1 pillar]# cd /srv/salt/keepalived/
[root@server1 keepalived]# cd files/
[root@server1 files]# vim keepalived.conf 
[root@server1 files]# salt server4 state.sls keepalived.service   #推送

keepalived.conf 文件
这里写图片描述
这里写图片描述

server4 查看

[root@server4 keepalived]# cd /etc/keepalived/
[root@server4 keepalived]# ls
keepalived.conf
[root@server4 keepalived]# ps ax
[root@server4 keepalived]# ip addr
[root@server4 salt]# yum install -y mailx

这里写图片描述

四·实现负载均衡

[root@server1 salt]# yum install -y mailx
[root@server1 keepalived]# cd ..
[root@server1 salt]# ls
_grains  haproxy  httpd  keepalived  nginx  pkgs  top.sls  users
[root@server1 salt]# vim top.sls
base:
  'server1':
    - haproxy.install
    - keepalived.service
  'server4':
    - haproxy.install
    - keepalived.service

[root@server1 salt]# salt '*' state.highstate
[root@server1 salt]# ip addr

这里写图片描述
这里写图片描述
server4 查看进程和IP

[root@server4 keepalived]# ps ax
[root@server4 keepalived]# ip addr

这里写图片描述

五·测试

网页访问:172.25.41.1
这里写图片描述
这里写图片描述

当在server1中关闭keepalived时,网页也不会受影响,还是会实现负载均衡现象

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

在server4中查看时,VIP已经被接管

这里写图片描述

server1打开服务后,VIP还是会回到server1上

[root@server1 salt]# /etc/init.d/keepalived start

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值