SaltStack自动化运维——SaltStack部署keepalived - Haproxy高可用负载均衡

62 篇文章 1 订阅
9 篇文章 0 订阅


实验环境

主机名ip服务
server1172.25.2.1salt-master
server2172.25.2.2salt-minion , httpd
server3172.25.2.3salt-minion , nginx
server4172.25.2.4salt-minion , haproxy、keepalived
server5172.25.2.5salt-minion , haproxy、keepalived

在这里插入图片描述

1、 keepalived - Haproxy基本思路

在这里插入图片描述

2、keepalived

[root@server1 salt]# cd /srv/salt
[root@server1 salt]# mkdir keepalived
[root@server1 keepalived]# mkdir file   #配置文件和软件包存放目录
2.1 keepalived安装脚本:install.sls
/mnt/libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm:
  file.managed:    #依赖性,镜像中没有,因此需要手动安装
    - source: salt://keepalived/file/libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm

keepalived-install: 
  pkg.installed: #依赖性
    - pkgs:
      - gcc
      - openssl-devel
      - libnl-devel

  file.managed:   #keepalived的安装包
    - name: /mnt/keepalived-2.0.6.tar.gz
    - source: salt://keepalived/file/keepalived-2.0.6.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf keepalived-2.0.6.tar.gz && yum install -y libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm && cd keepalived-2.0.6 && ./configure --prefix=/usr/local/keepalived --with-init=SYSV &> /dev/null && make &> /dev/null && make install &> /dev/null
    - create: /usr/local/keepalived  #如果此目录存在则不进行安装

2.2 keepalived启动脚本:service.sls
include:
  - keepalived.install   #包含了keepalived的安装脚本,实现一键部署

/etc/keepalived:
  file.directory:
    - user: root
    - group: root
    - mode: 644
    - makedirs: True

/etc/keepalived/keepalived.conf:
  file.managed:     #文件管理
    - source: salt://keepalived/file/keepalived.conf
    - mode: 644
    - template: jinja  #使用了jinja模块
    - context:
      STATE: {{ pillar['state'] }}   #使用了pillar定义变量
      PRIORITY: {{ pillar['priority'] }}

keepalived-service:
  service.running:
    - enable: keepalived
    - name: keepalived
    - reload: True
    - watch:
      - file: /etc/keepalived/keepalived.conf
2.3 keepalived相关文件及软件包

在这里插入图片描述

keepalived配置文件:keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
	root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   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 "/opt/check_haproxy.sh"
        interval 2 
        weight 2
}

vrrp_instance VI_1 {
    state {{ STATE }}    #pillar值
    interface eth0
    virtual_router_id 51 
    priority {{ PRIORITY }}   #pillar值
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
	172.25.2.100
    }

   track_script {     
        check_haproxy
    }
}

3、haproxy

3.1 haproxy的安装脚本:install.sls

在这里插入图片描述

3.2 haproxy的服务脚本:service.sls

在这里插入图片描述

3.3 haproxy的配置文件

在这里插入图片描述
更改配置文件haproxy.cfg:
在这里插入图片描述

4、apache

4.1 apache 的安装脚本:install.sls

在这里插入图片描述

5、nginx

5.1 nginx的安装脚本:install.sls

在这里插入图片描述

5.2 nginx的服务脚本:service.sls

在这里插入图片描述

5.3 nginx的相关配置文件

在这里插入图片描述

6、 keepalived中需要用到的pillar

vim /srv/pillar/web/install.sls

{% if grains['fqdn'] == 'server4' %}
state: MASTER
priority: 100
{% elif grains['fqdn'] == 'server5' %}
state: BACKUP
priority: 50
{% endif %}

在这里插入图片描述
vim pillar/top.sls

base:
  '*':
    - web.install

7、全局推送脚本

base:
  'server4':
    - haproxy.service
    - keepalived.service
  'server5':
    - haproxy.service
    - keepalived.service
  'server2':
    - apache.install
  'server3':
    - nginx.service

在这里插入图片描述

8、运行结果

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

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值