SaltStack自动化安装配置haproxy
准备环境
node1:192.168.217.149 (saltstack master)
node2:192.168.217.150(saltstack minion)
下载haproxy1.6.2.tar.gz
下载地址:http://www.haproxy.org/download/1.6/src/
在node1:192.168.217.149 (saltstack master)上操作配置模块
一、依赖安装模块
1、pkg.installed的路径相对于prod在/etc/salt/master中配置的相对路径
- mkdir /srv/salt/prod/
- mkdir /srv/salt/prod/haproxy/files -pv
- mkdir mkdir /srv/salt/prod/pkg/files -pv
- cd /srv/salt/prod/pkg
2、编写依赖包配置文件
vim pkg-init.sls
- vim pkg-init.sls
- pkg-init:
- pkg.installed:
- - names:
- - gcc
- - gcc-c++
- - glibc
- - make
- - autoconf
- - openssl
- - openssl-devel
二、编写HAproxy状态模块
如何配置状态模块
手动编译安装一遍haproxy,记录安装步骤
1、haproxy编译安装
- yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel
- cd /usr/local/src
- tar -zxf haproxy-1.6.2.tar.gz
- make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
2、将配置文件、启动文件复制到/srv/salt/prod/haproxy/files下
- step1:
- mv haproxy-1.6.2.tar.gz /srv/salt/prod/haproxy/files/
- cd /srv/salt/prod/haproxy/files/
- tar zxf haproxy-1.6.2.tar.gz
- cd haproxy-1.6.2/examples/
- vim haproxy.init
- BIN=/usr/local/haporxy/sbin/$BASENAME
- step2:
- cp haproxy.init /srv/salt/prod/haproxy/files/
- step3:
- cd /srv/salt/prod/haproxy/files
- rm -rf haproxy-1.6.2
3、编写install.sls
此文件不写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
- haproxy-init:
- file.managed:
- - name: /etc/init.d/haproxy
- - 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
提示:
1、如果是拷贝配置文件,确保$符号和配置之间没有空格,不然执行会出错,vim下,使用set list命令可以查看
2、层级关系是2、4、6个空格
建议先执行测试然后再实际配置修改,命令如下:
# salt '*' state.sls haproxy.install env=prod test=True
三、编写业务引用
1、haproxy配置文件
- mkdir -p /srv/salt/prod/cluster/files
- cd /srv/salt/prod/cluster/files/
vim /srv/salt/prod/cluster/files/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 192.168.3.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 192.168.217.149:8080 check inter 2000 rise 30 fall 15
- server web-node2 192.168.217.150:8080 check inter 2000 rise 30 fall 15
cd /srv/salt/prod/cluster/
vim /srv/salt/prod/cluster/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
2、编写top.sls
cd /srv/salt/base/
vim top.sls
- base:
- '*':
- - init.env_init
- prod:
- "node1":
- - cluster.haproxy-outside
- "node2":
- - cluster.haproxy-outside
三、执行安装配置
- salt '*' state.highstate
四、Web查看服务状态
从web登陆192.168.217.149:8888/haproxy-status
用户名和密码在/srv/salt/prod/cluster/files/haproxy-outside.cfg中
- grep 'auth' /srv/salt/prod/cluster/files/haproxy-outside.cfg
- stats auth haproxy:saltstack
界面如下:
SaltStack自动化安装配置haproxy的更多相关文章
- SaltStack自动化安装配置haproxy的Keepalived
keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...
- SaltStack自动化安装zabbix-server
使用SaltStack自动化安装zabbix-server 1,设置ntp时间同步 2,安装zabbix-agent 3,安装zabbix-server 4,安装及配置mariadb(mariadb与 ...
- NTP时间同步 服务端 客户端 自动化安装配置
NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...
- RabbitMQ集群安装配置+HAproxy+Keepalived高可用
RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...
- Linux系统实现ansible自动化安装配置httpd
1.使用ansible的playbook实现自动化安装httpd 1)首先配置好ansible的hosts文件,让其对应主机能够受ansible控制 提示:我们在主机清单上配置了所管控的主机地址,但是 ...
- Kickstart 自动化安装配置
自动化安装案例: 一 ,系统环境 # cat /etc/redhat-release CentOS release 6.6 (Final) #Hostname [root@boot ~]# hostn ...
- saltstack syndic安装配置使用
salt-syndic是做神马的呢?如果大家知道zabbix proxy的话那就可以很容易理解了,syndic的意思为理事,其实如果叫salt-proxy的话那就更好理解了,它就是一层代理,如同zab ...
随机推荐
- ACM学习历程—HDU5476 Explore Track of Point(平面几何)(2015上海网赛09题)
Problem Description In Geometry, the problem of track is very interesting. Because in some cases, th ...
- uoj problem 11 ydc的大树
题目大意: 给定一颗黑白树.允许删除一个白点.最大化删点后无法与删点前距自己最远的黑点连通的黑点个数.并求出方案数. 题解: 这道题很棒棒啊. 一开始想了一个做法,要用LCT去搞,特别麻烦而且还是\( ...
- java判断一个类是否公共类
Modifier.isPublic([类].getModifiers()) Modifier.isAbstract([类].getModifiers())
- mysql du-master配置
db-server1 my.cnf log_bin = mysql-binbinlog_format = mixedserver_id = 1 read-only = 0#binlog-do-db = ...
- Logstash 2.0.0 beta2 发布,开源日志管理
Logstash 是一个应用程序日志.事件的传输.处理.管理和搜索的平台.你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计. Logstash 现在是 ElasticSea ...
- POJ 1042 Gone Fishing( DP )
题意:小明打算做一个h((1 <= h <= 16))个小时钓鱼旅行.发现这里有n(2 <= n <= 25)个湖,而且所有的湖都在一条路的旁边.小明打算从第1个湖开始钓起,每 ...
- Java enum(枚举)使用详解之三
DK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl... ...
- 奇异值分解(SVD)详解
2012-04-10 17:38 45524人阅读 评论(18) 收藏 举报 分类: 数学之美 版权声明:本文为博主原创文章,未经博主允许不得转载. SVD分解 SVD分解是LSA的数学基础,本文是 ...
- 人工智能: 自动寻路算法实现(三、A*算法)
博客转载自:https://blog.csdn.net/kwame211/article/details/78139506 本篇文章是机器人自动寻路算法实现的第三章.我们要讨论的是一个在一个M×N的格 ...
- 很随意的让你了解 - 最小生成树之Prim算法
首先分成两个容器. 第一个容器就是装有生成树里面的顶点,第二个容器就是装有没有放入这个第一个容器中的顶点. 首先默认往第一个容器里面装一个顶点.然后..计算出第二个容器里所有顶点和这个顶点的距离.没有 ...