saltstack实践haproxy+keepalived

172.16.10.199 fonsview     作为minion

172.16.10.128  controller   作为master

[[email protected] cluster]# vim /etc/salt/master

file_roots:

base:

- /srv/salt/base

prod:

- /srv/salt/prod

pillar_roots:

base:

- /srv/pillar/base

prod:

- /srv/pillar/prod

[[email protected] cluster]# cd /srv/salt/

[[email protected] salt]# ll

total 8

drwxr-xr-x 3 root root 4096 Mar  5 14:41 base

drwxr-xr-x 4 root root 4096 Mar  5 10:43 prod

[[email protected] salt]# cat base/top.sls

base:

‘*‘:

- init.init

prod:

‘*‘:

#    - cluster.haproxy-outside

- cluster.haproxy-outside-keepalived

[[email protected] salt]# tree base/   #这里都是定义一些初始化的

base/

├── init

│   ├── audit.sls

│   ├── dns.sls

│   ├── epel.sls

│   ├── files

│   │   ├── resolv.conf

│   │   └── zabbix_agentd.conf

│   ├── history.sls

│   ├── init.sls

│   ├── sysctl.sls

│   └── zabbix-agent.sls

└── top.sls

2 directories, 10 files

[[email protected] salt]# cat base/init/init.sls

include:

- init.dns

- init.history

- init.audit

- init.sysctl

#  - init.epel

- init.zabbix-agent

[[email protected] salt]# cd prod/

[[email protected] prod]# ll

total 8

drwxr-xr-x 3 root root 4096 Mar  5 12:05 cluster

drwxr-xr-x 8 root root 4096 Mar  5 10:43 modules

[[email protected] prod]# tree

.

├── cluster

│   ├── files

│   │   ├── haproxy-outside.cfg

│   │   └── haproxy-outside-keepalived.conf

│   ├── haproxy-outside-keepalived.sls

│   └── haproxy-outside.sls

└── modules

├── haproxy

│   ├── files

│   │   ├── haproxy-1.6.3.tar.gz

│   │   └── haproxy.init

│   └── install.sls

├── keepalived

│   ├── files

│   │   ├── keepalived-1.2.17.tar.gz

│   │   ├── keepalived.init

│   │   └── keepalived.sysconfig

│   └── install.sls

├── memecached

├── nginx

├── php

└── pkg

└── make.sls

11 directories, 12 files

[[email protected] prod]# cat modules/pkg/make.sls 
make-pkg:
  pkg.installed:
    - pkgs:
      - make
      - gcc
      - gcc-c++
      - autoconf
      - openssl
      - openssl-devel
      - pcre
      - pcre-devel
      
      
[[email protected] prod]# cat modules/haproxy/install.sls 
include:
  - modules.pkg.make

haproxy-install:
  file.managed:
    - name: /usr/local/src/haproxy-1.6.3.tar.gz
    - source: salt://modules/haproxy/files/haproxy-1.6.3.tar.gz
    - mode: 755
    - user: root
    - group: root
  cmd.run:
    - name: cd /usr/local/src && tar xf haproxy-1.6.3.tar.gz && cd haproxy-1.6.3 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy 
    - unless: test -d /usr/local/haproxy
    - require:
      - pkg: make-pkg
      - file: haproxy-install

haproxy-init:
  file.managed:
    - name: /etc/init.d/haproxy
    - source: salt://modules/haproxy/files/haproxy.init
    - mode: 755
    - user: root
    - group: root
    - require_in:
      - file: haproxy-install
  cmd.run:
    - name: chkconfig --add haproxy
    - unless: chkconfig --list | grep haproxy

net.ipv4.ip_nonlocal_bind:
  sysctl.present:
    - value: 1

/etc/haproxy:
  file.directory:
    - user: root
    - group: root
    - mode: 755

定义keepalived安装

[[email protected] prod]# cat modules/keepalived/install.sls 
{% set keepalived_tar = ‘keepalived-1.2.17.tar.gz‘ %}
keepalived-install:
  file.managed:
    - name: /usr/local/src/{{ keepalived_tar }}
    - source: salt://modules/keepalived/files/{{ keepalived_tar }}
    - mode: 755
    - user: root
    - group: root
  cmd.run:
    - name: cd /usr/local/src && tar zxf keepalived-1.2.17.tar.gz && cd keepalived-1.2.17 && ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
    - unless: test -d /usr/local/keepalived
    - require:
      - file: keepalived-install

/etc/sysconfig/keepalived:
  file.managed:
    - source: salt://modules/keepalived/files/keepalived.sysconfig
    - mode: 644
    - user: root
    - group: root

/etc/init.d/keepalived:
  file.managed:
    - source: salt://modules/keepalived/files/keepalived.init
    - mode: 755
    - user: root
    - group: root

keepalived-init:
  cmd.run:
    - name: chkconfig --add keepalived
    - unless: chkconfig --list | grep keepalived
    - require:
      - file: /etc/init.d/keepalived

/etc/keepalived:
  file.directory:
    - user: root
    - group: root
    
    
引入配置文件
[[email protected] prod]# cat cluster/haproxy-outside-keepalived.sls 
include:
  - modules.keepalived.install
keepalived-server:
  file.managed:
    - name: /etc/keepalived/keepalived.conf
    - source: salt://cluster/files/haproxy-outside-keepalived.conf
    - mode: 644
    - user: root
    - group: root
    - template: jinja
    {% if grains[‘fqdn‘] == ‘controller‘ %}
    - ROUTEID: haproxy_ha
    - STATEID: MASTER
    - PRIORITYID: 150
    {% elif grains[‘fqdn‘] == ‘fonsview‘ %}
    - ROUTEID: haproxy_ha
    - STATEID: BACKUP
    - PRIORITYID: 100
    {% endif %}
  service.running:
    - name: keepalived
    - enable: True
    - watch:
      - file: keepalived-server

执行高级状态

[[email protected] cluster]# salt ‘*‘ state.highstate  

验证结果
[[email protected] prod]# salt ‘*‘ cmd.run ‘ps -ef|grep haproxy‘
fonsview:
    nobody     7097      1  0 00:16 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
    root       8462   8461  0 01:10 ?        00:00:00 /bin/sh -c ps -ef|grep haproxy
    root       8464   8462  0 01:10 ?        00:00:00 grep haproxy
controller:
    nobody     3005      1  0 14:12 ?        00:00:01 /usr/local/haproxy/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
    root       7316 124173 44 15:07 pts/1    00:00:00 /usr/bin/python /usr/bin/salt * cmd.run ps -ef|grep haproxy
    root       7334   7333  0 15:07 ?        00:00:00 /bin/sh -c ps -ef|grep haproxy
    root       7336   7334  0 15:07 ?        00:00:00 grep haproxy
[[email protected] prod]# 
[[email protected] prod]# salt ‘*‘ cmd.run ‘ps -ef|grep keepali‘
controller:
    root       7339 124173  0 15:07 pts/1    00:00:00 /usr/bin/python /usr/bin/salt * cmd.run ps -ef|grep keepali
    root       7357   7356  0 15:07 ?        00:00:00 /bin/sh -c ps -ef|grep keepali
    root       7359   7357  0 15:07 ?        00:00:00 grep keepali
fonsview:
    root       7560      1  0 00:46 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
    root       7562   7560  0 00:46 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
    root       7563   7560  0 00:46 ?        00:00:00 /usr/local/keepalived/sbin/keepalived -D
    root       8470   8469  0 01:10 ?        00:00:00 /bin/sh -c ps -ef|grep keepali
    root       8472   8470  0 01:10 ?        00:00:00 /bin/sh -c ps -ef|grep keepali

时间: 2024-08-06 11:02:52

saltstack实践haproxy+keepalived的相关文章

自动化运维之SaltStack实践视频教程

点我开始学习: http://edu.51cto.com/course/course_id-2354.html 1      培训目标 本课程的目标是让所有参加培训的学员都可以使用SaltStack进行服务器管理,熟练使用远程执行的功能批量操作服务器,使用配置管理进行自动化安装.部署和管理.同时可以根据企业的生产需求进行自定义的开发.最后带领学员完成生产项目-使用<SaltStack进行OpenStack自动化部署>. 2      预备知识 l  熟悉Linux基本命令及系统管理. l  熟

haproxy+keepalived实现高可用负载均衡web集群

haproxy+keepalived实现高可用负载均衡web集群 负载均衡集群的概念 负载均衡是设计分布式系统架构必须要考虑的因素之一,它指的是通过调度分发的方式尽可能将"请求"."访问"的压力负载平均分摊到集群中的各个节点,避免有些节点负载太高导致访问延迟,而有些节点负载很小导致资源浪费.这样,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间的动态分配,以实现负载均衡,从而为企业提供更高性能,更加稳定的系统架构解决方案. 高可用集群的概念

基于HAProxy+Keepalived高可用负载均衡web服务的搭建

一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进当前的架构中, 同时可以保护web服务器不被暴露到网络上.2.KeepalivedKeepalived 是一个基于VRRP协议来实现的LVS服务高

HAproxy+Keepalived负载均衡-高可用web站

haproxy+keepalived负载均衡高可用web站   OS IP 子网掩码 路由网关 Centos6.6 HAproxy Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 HAporxy Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6(WE

Haproxy+keepalived 高可用负载

Haproxy+keepalived+apache 一.拓扑图: 二.编译安装haproxy(两台机器一样安装) 解压:tar zxvf haproxy-1.6.4.tar.gz 编译:注意:下边的等号前边的参数必须大写 cd haproxy-1.6.4 make TARGET=linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy 安装后,创建配置文件和启动文件 mkdir -p

高性能业务架构解决方案(HAproxy+Keepalived)

高性能业务架构解决方案(HAproxy+Keepalived) 一. 概况 1.1 应用场景 1.2 LVS/Nginx/HAProxy特点 二. 相关理论 2.1 Keepalived工作原理 2.2 HAproxy工作原理 三. 架构拓扑 四. 资源规划 五. 实施部署 5.1初始化配置 5.2 HAproxy配置 5.3 Keepalived部署 5.3.1 Keepalived的安装 5.3.2 配置keepalived 5.3.3 检测脚本 5.4 后端WEB服务器 5.5 测试 5.

haproxy+keepalived搭建WEB群集

haproxy+keepalived搭建WEB群集 前面已经学习了两款web群集软件Nginx和lvs,他们都有各自的特点,本章将介绍另外一款群集软件haproxy,我们将对其的调度算法.群集环境.以及群集的配置展开讲解. haporxy是目前比较流行的调度工具,之前学习的lvs配置相对来说比较复杂,nginx不能实现健康检查性能也没有haproxy好.官方站点位于htp://haproxy.1wt.eu/. 今天我们将介绍使用haproxy搭建一套web群集 一.案例概述 1.案例前知识点 1

HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理. HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 二.Keepalived简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,

Haproxy+keepalived高可用、负载均衡安装部署方案

1     环境说明 前端两台haproxy+keepalived互为主从,提供高可用:另外基于不同域名访问不同的虚拟ip实现负载均衡 1.1     环境描述 服务器A(主.从):eth0:10.241.51.245   eth1:192.168.1.9 服务器B(从.主):eth2:10.241.51.246   eth1:192.168.1.10 服务器C(web01):eth0:10.241.51.247 服务器D(web02):eth0:10.241.51.248 VIP1:10.24