🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
基本介绍: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 (执行安装)