Saltstack部署keepalived实现haproxy高可用

Saltstack部署keepalived实现haproxy高可用

图解:
在这里插入图片描述
环境:
Server1(salt-master,keepalived-backup,haproxy)172.25.254.1
Server2(salt-minion,keepalived-master,haproxy)172.25.254.2
Server3(salt-minion,RS,httpd)172.25.254.3
Server4(salt-minion,RS,httpd)172.25.254.4
vip:172.25.254.100

先配置好salt
在这里插入图片描述

haproxy实现nginx负载均衡就采用之前的部署文件,详见Saltstack安装部署及实践
现在只需配置keepalived部署即可

cd /srv/salt
mkdir keepalived/files -p
vim pkgs/install.sls 
make:
  pkg.installed:
    - pkgs:
      - gcc
      - openssl-devel
      - pcre-devel

vim keepalived/install.sls
include:
  - pkgs.install

keep-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 --with-init=SYSV --prefix=/usr/local/keepalived &> /dev/null && make &> /dev/null && make install &> /dev/null && cd .. && rm -fr keepalived-2.0.6
    - creates: /usr/local/keepalived

/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

在这里插入图片描述
在这里插入图片描述
先测试一下编译和软连接是否有错
需在/srv/salt/keepalived/files 目录下放入keepalived源码包
在这里插入图片描述
没有报错
在这里插入图片描述
接下来编写keepalived启动文件
将server2上的keepalived启动脚本和keepalived配置文件放在server1的
/srv/salt/keepalived/files 目录下

scp /usr/local/keepalived/etc/keepalived/keepalived.conf  server1:/srv/salt/keepalived/files
scp /usr/local/keepalived/etc/rc.d/init.d/keepalived server1:/srv/salt/keepalived/files

在这里插入图片描述

vim keepalived/files/keepalived.conf #编辑配置文件
! Configuration File for keepalived
global_defs {
   notification_email {
        root@localhost
   }
   notification_email_from keepalived@localhost
   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
}

vrrp_script check_haproxy {
    script  "killall -0 haproxy"
    interval  1
}

vrrp_instance VI_1 {
    state {{ STATE }}
    interface eth0
    virtual_router_id 24
    priority {{ PRIORITY }}
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100
}
    track_script {
        check_haproxy
    }
}





vim keepalived/service.sls
include:
  - keepalived.install

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

keep-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

vim /etc/salt/master

在这里插入图片描述

/etc/init.d/salt-master restart
mkdir /srv/pillar
cd /srv/pillar
mkdir keepalived
vim keepalived/state.sls 
vim keepalived/priority.sls 

在这里插入图片描述

vim top.sls

在这里插入图片描述

salt '*' saltutil.refresh_pillar   #刷新pillar
salt '*' pillar.items            #查看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试在server2上是否启动,并查看配置文件参数

salt server2 state.sls keepalived.service

在这里插入图片描述

在server1中修改keepalived配置文件
vim /srv/salt/keepalived/files/keepalived.conf
#自定义一个脚本函数,函数名check_haproxy可以自定义

vrrp_script check_haproxy {
    script  "killall -0 haproxy"     #此脚本需自己编写
    interval  1                    #每个多长时间探测一次
}

vrrp_instance VI_1 {
    track_script {
        check_haproxy
    }
}

在这里插入图片描述

vim top.sls 
base:
  'server1':
    - haproxy.install
    - keepalived.service
  'server2':
    - haproxy.install
    - keepalived.service
  'server3':
    - nginx.install3
  'server4':
    - nginx.install4


salt '*' state.highstate   #没有报错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试:
此时vip在server2上
在这里插入图片描述

在server1上

curl 172.25.254.100     #实现负载均衡

在这里插入图片描述

关闭server2的haproxy,发现vip飘到server1上,此时仍可以实现负载均衡
在这里插入图片描述
在这里插入图片描述
当server2上haproxy启动时,vip又飘到server2上,仍可以实现负载均衡,实现了haproxy高可用
在这里插入图片描述
在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值