SaltStack实践(一)-- 安装配置HAproxy

1、编写功能模块

1)首先编写依赖安装模块

[[email protected] ~]# mkdir -p /srv/salt/prod/pkg /srv/salt/prod/haproxy /srv/salt/prod/haproxy/files
[[email protected] pkg]# vim pkg-init.sls
pkg-init:
 pkg.installed:
   - names:
     - gcc
     - gcc-c++
     - glibc
     - make
     - autoconf
     - openssl
     - openssl-devel

2)编写HAproxy状态模块

如何写状态模块?1、安装一遍,将安装步骤记录;2、将配置文件,启动文件等cp到/srv/salt/prod/*/files下

a)获取启动脚本,并copy到/srv/salt/prod/haproxy/files/

[[email protected] ~]# mv haproxy-1.6.2.tar.gz  /srv/salt/prod/haproxy/files/

[[email protected] ~]# cd /srv/salt/prod/haproxy/files/
[[email protected] files]# tar zxf haproxy-1.6.2.tar.gz

[[email protected] files]# cd haproxy-1.6.2/examples/
[[email protected] examples]# vim haproxy.init
35 BIN=/usr/local/haporxy/sbin/$BASENAME

[[email protected] examples]# cp haproxy.init  /srv/salt/prod/haproxy/files/

[[email protected] examples]# cd /srv/salt/prod/haproxy/files

[[email protected] files]# rm -rf haproxy-1.6.2

b)编写install.sls

不在这里写配置文件,是为了解耦。因为安装和启动时原子操作,在哪都必须,但是配置文件,在不同环境下是不一样的

[[email protected] examples]# cd /srv/salt/prod/haproxy/
[[email protected] haproxy]# vim install.sls    
include:
 - pkg.pkg-init
haproxy-install:    
 file.managed:    
   - name: /usr/local/src/haproxy-1.6.2.tar.gz
   - source: salt://haproxy/files/haproxy-1.6.2.tar.gz
   - user: root
   - group: root
   - mode: 755
 cmd.run:        
   - name: cd /usr/local/src && tar zxf haproxy-1.6.2.tar.gz && cd haproxy-1.6.2 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
   - unless: test -d /usr/local/haproxy   
   - require:    
     - pkg: pkg-init
     - file: haproxy-install  
/etc/init.d/haproxy:  
 file.managed:
   - source: salt://haproxy/files/haproxy.init
   - user: root
   - group: root
   - mode: 755
   - require:
     - cmd: haproxy-install
 cmd.run:
   - name: chkconfig --add haproxy
   - unless: chkconfig --list | grep haproxy
   - require:
     - file: /etc/init.d/haproxy
net.ipv4.ip_nonlocal_bind:
 sysctl.present:
   - value: 1
haproxy-config-dir:
 file.directory:
   - name: /etc/haproxy
   - user: root
   - group: root
   - mode: 755

[[email protected] src]# salt ‘linux-node1.*‘ state.sls haproxy.install env=prod
linux-node1.example.com:
----------
......

Summary
-------------
Succeeded: 13 (changed=3)
Failed:     0
-------------
Total states run:     13

2、编写业务引用 - HAproxy配置文件

[[email protected] files]# mkdir -p /srv/salt/prod/cluster/files
[[email protected] files]# cd /srv/salt/prod/cluster/files/    
[[email protected] files]# vim haproxy-outside.cfg
global
maxconn 100000
chroot /usr/local/haproxy
uid 99  
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid
log 127.0.0.1 local3 info
defaults
option http-keep-alive
maxconn 100000
mode http
timeout connect 5000ms
timeout client  50000ms
timeout server 50000ms
listen stats
mode http
bind 0.0.0.0:8888
stats enable
stats uri     /haproxy-status
stats auth    haproxy:saltstack
frontend frontend_www_example_com
bind 10.0.0.11:80
mode http
option httplog
log global
   default_backend backend_www_example_com
backend backend_www_example_com
option forwardfor header X-REAL-IP
option httpchk HEAD / HTTP/1.0
balance source
server web-node1  10.0.0.7:8080 check inter 2000 rise 30 fall 15   #
server web-node2  10.0.0.8:8080 check inter 2000 rise 30 fall 15
[[email protected] files]#cd ..
[[email protected] cluster]# vim haproxy-outside.sls
include:
 - haproxy.install
haproxy-service:
 file.managed:
   - name: /etc/haproxy/haproxy.cfg
   - source: salt://cluster/files/haproxy-outside.cfg
   - user: root
   - group: root
   - mode: 644
 service.running:
   - name: haproxy
   - enable: True
   - reload: True
   - require:
     - cmd: haproxy-init
   - watch:
     - file: haproxy-service
[[email protected] ~]# cd /srv/salt/base/
[[email protected] base]# vim top.sls
base:
 ‘*‘:
   - init.env_init
prod:
 ‘linux-node[1-2].example.com‘:
   - cluster.haproxy-outside
[[email protected] base]# salt ‘*‘ state.highstate
linux-node1.example.com:
----------
......

Summary
-------------
Succeeded: 21 (unchanged=2, changed=1)
Failed:     0
-------------
Total states run:     21
linux-node2.example.com:
----------
......  
Summary
-------------
Succeeded: 21 (unchanged=9, changed=3)
Failed:     0
-------------
Total states run:     21

3、Web查看服务状态

从web登陆10.0.0.7:8888/haproxy-status,用户名和密码在/srv/salt/prod/cluster/files/haproxy-outside.cfg中

[[email protected] base]# grep ‘auth‘ /srv/salt/prod/cluster/files/haproxy-outside.cfg
stats auth    haproxy:saltstack

时间: 2024-11-13 00:26:22

SaltStack实践(一)-- 安装配置HAproxy的相关文章

rpm包方式安装配置haproxy

1.以rpm包方式安装haproxy #yum -y install  haproxy 2.查看haproxy安装生成那些文件 #rpm -ql  haproxy 3.haproxy命令选项: syntax:haproxy [-f < 配置文件>] [ -vdVD ] [-n 最大并发连接总数] [-N 每个侦听的最大并发数]  [ -p <当前的PID文件> ] [-m <内存限制M>]  [-h <命令帮助H>]            -v 显示当前版本

Centos安装配置HAProxy+Nginx环境

在测试环境安装了一下Nginx(作为http服务器)和HAProxy(反向代理),并配置HAProxy的日志输出到/var/log/haproxy.log,笔记一下. 需要说明的是,这里仅涉及基本的安装.配置方法,并不涉及生产环境中的具体用法. 一.安装Nginx 1.准备环境 yum install -y gcc      #一般都有 yum install -y gcc-c++  #非必须 yum install -y pcre pcre-devel  #正则匹配 yum install -

运维自动化之:Saltstack配置管理工具安装配置使用攻略

系统环境: Centos 6.x 服务端(salt-master):10.1.2.11 客户端(salt-minion):10.1.2.10.10.1.2.11.10.1.2.12 安装: rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 服务端:yum install salt-master  客户端:yum install salt-minion 服务端配置: vim /etc/sal

一键安装配置Haproxy

#!/bin/sh ################################################### #Author: Created by randolph 2016/10 #Blog:http://randolph.blog.51cto.com #Function: This scripts function is install haproxy #Version:4.1.2 ###############################################

实战使用saltstack源码安装配置mysql

环境: salt_master:192.168.100.228 salt_client1:192.168.100.245 master client 版本一致 [[email protected]_server base]# salt --versions-report            Salt: 0.17.5          Python: 2.6.6 (r266:84292, Jun 18 2012, 14:18:47)          Jinja2: unknown       

CentOS6下Haproxy的安装配置

Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp://195.220.108.108/linux/centos/6.8/os/x86_64/Packages/haproxy-1.5.4-3.el6.x86_64.rpm --下载 rpm -ivh haproxy-1.5.4-3.el6.x86_64.rpm -安装 2.配置Haproxy cp /

RedHat 7配置HAProxy实现Web负载均衡

本文将简单介绍使用HAProxy实现web负载均衡,主要内容包括基于权重的轮询.为HAProxy配置https.配置http重定向为https.配置HAProxy使用独立日志. 一.测试环境 HAProxy: 主机名:RH7-HAProxy IP地址:192.168.10.20 操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装 防火墙与SELinux:关闭 安装的服务:HAProxy-1.5.14 WEB01: 主机名:R

高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用 rabbitmq 集群 消息队列 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.AMQP的主

HAproxy的安装配置

本文尚未完结,待完善,估计今晚之前可以发出完整版 一.安装HAproxy官方给出的文档如下(HAproxy1.7版本):To build haproxy, you will need : -GNU make -GCC between 2.95 and 4.8. -GNU ld Also, you might want to build with libpcre supportIf your system supports PCRE (Perl Compatible Regular Express