基本介绍:Haproxy是一个开源的高性能的反向代理,支持四层和七层的负载均衡,以及多种负载均衡,健康检查等 (下面以centos6.8为例)
第一步:创建目录
[admin@master pkg]$ sudo mkdir /srv/salt/prod/haproxy ---(存放sls)
[admin@master pkg]$ sudo mkdir /srv/salt/prod/haproxy/files--(存放haproxy源码包)
第二步:
下载源码包:(haproxy-1.8.3为例)
[admin@master files]$ sudo wget http://soft.51yuki.cn/haproxy-1.8.3.tar.gz
第三步:编写状态
1、在编写状态之前,一般找一台机器先手工安装软件,然后把安装命令记录下来
[admin@proxy02 ~]$ cd /usr/local/src
[admin@proxy02 src]$ sudo tar xf haproxy-1.8.3.tar.gz
[admin@proxy02 ~]$ cd /usr/local/src/haproxy-1.8.3
[admin@proxy02 haproxy-1.8.3]$ sudo make TARGET=linux26 PREFIX=/usr/local/haproxy && make install prefix=/usr/local/haproxy
编写默认的启动脚本
[admin@proxy02 examples]$ sudo vim haproxy.init
BIN=/usr/local/haproxy/sbin/$BASENAME
然后把软件和启动脚本拷贝到相关目录,如下图
[admin@master haproxy]$ tree
.
├── files
│ ├── haproxy-1.8.3.tar.gz
│ └── haproxy.init
└── install_haproxy.sls
[admin@master prod]$ tree
.
├── haproxy
│ ├── files
│ │ ├── haproxy-1.8.3.tar.gz
│ │ └── haproxy.init
│ └── install_haproxy.sls
└── pkg
└── pkg-init.sls
2、编写haproxy的安装脚本
~~~
include:
- pkg.pkg-init (通过include命令把pkg目录下的pkg-init引入过来)
haproxy-install: (ID:安装haproxy)
file.managed: (文件管理模块,把haproxy文件拷贝过去)
- name: /usr/local/src/haproxy-1.8.3.tar.gz
- source: salt://haproxy/files/haproxy-1.8.3.tar.gz
- user: root
- group: root
- mode: 755
cmd.run: (开始安装haproxy)
- name: cd /usr/local/src && sudo tar xf haproxy-1.8.3.tar.gz && cd haproxy-1.8.3 && sudo make TARGET=linux26 PREFIX=/usr/local/haproxy && sudo make install prefix=/usr/local/haproxy
- unless: test -d /usr/local/haproxy (unless通过test命令来测试,如果/usr/local/haproxy目录存在,则就不执行上面的cmd命令来安装haproxy)
- require: (require: 表示依赖,当pkg-init下的pkg模块,haproxy-install下的file模块,这两个执行成功后,在执行安装haproxy,否则就不执行)
- pkg: pkg-init
- file: haproxy-install
haproxy-config-dir: (创建一个存放haproxy配置文件的目录)
file.directory:
- name: /etc/haproxy
- user: root
- group: root
- mode: 755
haproxy-init: (配置haproxy启动服务)
file.managed: (通过file模块,管理haproxy脚本)
- name: /etc/init.d/haproxy
- source: salt://haproxy/files/haproxy.init
- user: root
- group: 755
- require:
- cmd: haproxy-install
cmd.run:
- name: chkconfig --add haproxy
- unless: chkconfig --list|grep haproxy
- require:
- file: haproxy-service
net.ipv4.ip_nonlocal_bind:
sysctl.present:
- value: 1
~~~
3、先手工安装一遍
先测试一遍,添加test="true",看看sls文件有没有写错
[admin@master haproxy]$ sudo salt 'proxy01*' state.sls haproxy.install_ha env=prod test="true"
Summary
-------------
Succeeded: 17 (changed=6) ----表示没有错误
Failed: 0
-------------
Total states run: 17
安装就运行
sudo salt 'proxy01*' state.sls haproxy.install_ha env=prod (执行安装)
- 第一章:saltstack的基本介绍
- 第二章:saltstack的安装部署
- 第一节:在centos7系统上安装saltstack工具
- 第二节:在windows server 2008上安装salt-minion
- 第三章: saltstack的配置管理
- 第一节:salt-master配置
- 第二节:salt-minion配置
- 第三节:了解YAML
- 第四节:salt-master配置文件详解
- 第五节:了解Jinja2
- 第六节:配置普通用户可以运行saltstack的模块
- 第四章:远程执行
- 第一节:远程执行基础介绍
- 第二节:目标定位
- 一、全局及正则表达式匹配
- 二、列表匹配
- 三、Grains
- 四: Pillar
- 五:subnet and ip
- 六:组合匹配
- 七: node group
- 第三节:常用模块
- 一、查看帮助
- 二、Network模块
- 三、Service模块
- 四:State模块
- 五、Cron模块
- 六、File模块
- 七、iptables模块
- 八、pkg包管理
- 第四节:Salt其他命令
- 一、salt-cp(拷贝文件)
- 二、salt-ssh
- 三、salt-key
- 第五节:saltstack返回程序
- 第一节:返回保持到数据库(mysql)
- 第五章:配置管理
- 第一节:简单入门
- 第二节:状态间关系
- 第六章:数据系统
- 第一节:grains
- 第二节:pillar
- 第七章:saltstack配置管理
- 第一节:系统初始化操作
- 第二节:功能模块
- 一、haproxy模块
- 二、keepalived模块
- 三、nginx模块
- 四: pcre模块
- 五: zlib模块
- 六:user模块
- 七:php模块
- 第三节:业务模块
- 第一节:haproxy代理
- 第二节:keepalived业务
- 第八章:自动化管理工具saltstack
- 第一节:文件管理
- 第二节:软件管理
- 第三节:服务管理
- 第四节:sysctl模块管理