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

1、编写功能模块

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


  1. [[email protected] ~]# mkdir -p /srv/salt/prod/pkg /srv/salt/prod/haproxy /srv/salt/prod/haproxy/files
  2. [[email protected] pkg]# vim pkg-init.sls
  3. pkg-init:
  4.  pkg.installed:
  5.    - names:
  6.      - gcc
  7.      - gcc-c++
  8.      - glibc
  9.      - make
  10.      - autoconf
  11.      - openssl
  12.      - openssl-devel

2)编写HAproxy状态模块

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

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


  1. [[email protected] ~]# mv haproxy-1.6.2.tar.gz  /srv/salt/prod/haproxy/files/
  2. [[email protected] ~]# cd /srv/salt/prod/haproxy/files/
  3. [[email protected] files]# tar zxf haproxy-1.6.2.tar.gz
  4. [[email protected] files]# cd haproxy-1.6.2/examples/
  5. [[email protected] examples]# vim haproxy.init
  6. 35 BIN=/usr/local/haporxy/sbin/$BASENAME
  7. [[email protected] examples]# cp haproxy.init  /srv/salt/prod/haproxy/files/
  8. [[email protected] examples]# cd /srv/salt/prod/haproxy/files
  9. [[email protected] files]# rm -rf haproxy-1.6.2

b)编写install.sls

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


  1. [[email protected] examples]# cd /srv/salt/prod/haproxy/
  2. [[email protected] haproxy]# vim install.sls    #顺序一定要正确,从上往下解析
  3. include:
  4.  - pkg.pkg-init
  5. haproxy-install:    #id声明,id唯一,id名称没有意义,主要是为了方便标识
  6.  file.managed:    #一个ID下一个模块只能使用一次,不能冲突
  7.    - name: /usr/local/src/haproxy-1.6.2.tar.gz
  8.    - source: salt://haproxy/files/haproxy-1.6.2.tar.gz
  9.    - user: root
  10.    - group: root
  11.    - mode: 755
  12.  cmd.run:        
  13.    - 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
  14.    - unless: test -d /usr/local/haproxy   # 当unless选项指向的命令返回false才执行name指向的命令。还有个onlyif,当onlyif指向的命令返回true才执行name指向的命令
  15.    - require:    #依赖后续的状态
  16.      - pkg: pkg-init
  17.      - file: haproxy-install  #依赖haproxy-install这个ID中的file模块
  18. /etc/init.d/haproxy:  #name声明
  19.  file.managed:
  20.    - source: salt://haproxy/files/haproxy.init
  21.    - user: root
  22.    - group: root
  23.    - mode: 755
  24.    - require:
  25.      - cmd: haproxy-install
  26.  cmd.run:
  27.    - name: chkconfig --add haproxy
  28.    - unless: chkconfig --list | grep haproxy
  29.    - require:
  30.      - file: /etc/init.d/haproxy
  31. net.ipv4.ip_nonlocal_bind:
  32.  sysctl.present:
  33.    - value: 1
  34. haproxy-config-dir:
  35.  file.directory:
  36.    - name: /etc/haproxy
  37.    - user: root
  38.    - group: root
  39.    - mode: 755
  40. [[email protected] src]# salt ‘linux-node1.*‘ state.sls haproxy.install env=prod
  41. linux-node1.example.com:
  42. ----------
  43. ......
  44. Summary
  45. -------------
  46. Succeeded: 13 (changed=3)
  47. Failed:     0
  48. -------------
  49. Total states run:     13

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


  1. [[email protected]-node1 files]# mkdir -p /srv/salt/prod/cluster/files
  2. [[email protected]-node1 files]# cd /srv/salt/prod/cluster/files/    
  3. [[email protected]-node1 files]# vim haproxy-outside.cfg
  4. global
  5. maxconn 100000
  6. chroot /usr/local/haproxy
  7. uid 99  
  8. gid 99
  9. daemon
  10. nbproc 1
  11. pidfile /usr/local/haproxy/logs/haproxy.pid
  12. log 127.0.0.1 local3 info
  13. defaults
  14. option http-keep-alive
  15. maxconn 100000
  16. mode http
  17. timeout connect 5000ms
  18. timeout client  50000ms
  19. timeout server 50000ms
  20. listen stats
  21. mode http
  22. bind 0.0.0.0:8888
  23. stats enable
  24. stats uri     /haproxy-status
  25. stats auth    haproxy:saltstack
  26. frontend frontend_www_example_com
  27. bind 10.0.0.11:80
  28. mode http
  29. option httplog
  30. log global
  31.    default_backend backend_www_example_com
  32. backend backend_www_example_com
  33. option forwardfor header X-REAL-IP
  34. option httpchk HEAD / HTTP/1.0
  35. balance source
  36. server web-node1  10.0.0.7:8080 check inter 2000 rise 30 fall 15   #生产环境除了负载均衡,其他服务都不监听80端口,建议改成8080,好处是:1、只有负载均衡监听80;2、普通用户可以起服务,不需要root用户
  37. server web-node2  10.0.0.8:8080 check inter 2000 rise 30 fall 15
  38. [[email protected]-node1 files]#cd ..
  39. [[email protected]-node1 cluster]# vim haproxy-outside.sls
  40. include:
  41.  - haproxy.install
  42. haproxy-service:
  43.  file.managed:
  44.    - name: /etc/haproxy/haproxy.cfg
  45.    - source: salt://cluster/files/haproxy-outside.cfg
  46.    - user: root
  47.    - group: root
  48.    - mode: 644
  49.  service.running:
  50.    - name: haproxy
  51.    - enable: True
  52.    - reload: True
  53.    - require:
  54.      - cmd: haproxy-init
  55.    - watch:
  56.      - file: haproxy-service
  57. [[email protected]-node1 ~]# cd /srv/salt/base/
  58. [[email protected]-node1 base]# vim top.sls
  59. base:
  60.  ‘*‘:
  61.    - init.env_init
  62. prod:
  63.  ‘linux-node[1-2].example.com‘:
  64.    - cluster.haproxy-outside
  65. [[email protected]-node1 base]# salt ‘*‘ state.highstate
  66. linux-node1.example.com:
  67. ----------
  68. ......
  69. Summary
  70. -------------
  71. Succeeded: 21 (unchanged=2, changed=1)
  72. Failed:     0
  73. -------------
  74. Total states run:     21
  75. linux-node2.example.com:
  76. ----------
  77. ......
  78. Summary
  79. -------------
  80. Succeeded: 21 (unchanged=9, changed=3)
  81. Failed:     0
  82. -------------
  83. Total states run:     21

3、Web查看服务状态

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


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

时间: 2024-11-04 20:20:31

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

Saltstack配置管理-业务引用haproxy

[[email protected] ~]# mkdir /srv/salt/prod/cluster/files -p [[email protected] ~]# cd /srv/salt/prod/cluster/files [[email protected] files]# ls haproxy-outside.cfg [[email protected] files]# cat /srv/salt/prod/cluster/files/haproxy-outside.cfg    

saltstack 系列(四)centos7使用saltstack源码安装nginx

使用saltstack源码安装nginx,首先先看一下我nginx的目录  tree一下,我们只需要关系nginx-install.sls 和nignx-service.sls.clu-vhost是我用python写的自动添加集群和自动更新踢出集群,后面会讲到. nginx ├── files │   ├── clu-vhost │   │   ├── 11.py │   │   ├── content.txt │   │   ├── epel-release-latest-7.noarch.r

CentOS6.5 安装HAProxy 1.5.20

[在CentOS下安装haproxy] sudo yum install haproxy 编辑配置文件 vim /etc/haproxy/haproxy.cfg #--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options onlin

Hadoop部署实践:   离线安装 CDH5.1   (待完成)

配置主机映射关系 [[email protected] ~]$ cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 10.15.5.200 master.hadoop 10.15.5.201 slave01.hadoop 10.15.5.202 slave02.hadoop 10.15.5.203 slave03.hadoop 如上有4台主机,每台hosts都已

Centos7安装haproxy

安装Haproxy #yum -y install gcc            #tar zxf haproxy-1.4.21.tar.gz #mv haproxt-1.4.21 haproxy #make TARGET=linux31 PREFIX=/usr/local/haproxy    将haproxy安装到指定目录 #make install PREFIX=/usr/local/haproxy 配置     #安装完后会在安装目录下生成三个目录     doc sbin  share

Saltstack配置管理功能模块-haproxy

[[email protected] base]# mkdir /srv/salt/prod/pkg [[email protected] base]# mkdir /srv/salt/prod/haproxy [[email protected] base]# mkdir /srv/salt/prod/haproxy/files [[email protected] base]# cd /srv/salt/prod/haproxy/files [[email protected] files]

CentOS 6.5 安装haproxy

1.安装haproxy #tar xzvf haproxy-1.5.9.tar.gz #cd haproxy-1.5.9 # make TARGET=linux26 PREFIX=/usr/local/haproxy # make install PREFIX=/usr/local/haproxy # mkdir /usr/local/haproxy/etc # mkdir -p /data/logs/haproxy 2.编辑haproxy 配置文件 # vi   /usr/local/hapr

Saltstack 服务器基本安装

Salt介绍 Salt是一个基础平台管理工具 Salt是一个配置管理系统,能够维护预定义状态的远程节点 Salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 Salt核心功能 使命令发送到远程系统是并行的而不是串行的 使用安全加密的协议 使用最小最快的网络载荷 提供简单的编程接口 Salt有点 Saltstack是用python语音编写 相当于设备是轻量级别的 Saltstack通讯采用ZEROMQ实现使得它很快速 Saltstack是开源的 通过python可以自己写模块 Sa

saltstack源码安装zabbix_agent

公司现有的监控使用zabbix,saltstack客户端服务端安装好后,客户端不需要每台机器逐台安装,当然修改zabbix配置文件,直接用salt完成,今天测试了salt源码安装zabbix_agent,效果还行: 老规矩,top.sls [[email protected] salt]# cat top.sls base: '*': - zabbix #目录树 [[email protected] salt]# tree zabbix/ zabbix/ ├── conf.sls ├── fil

saltstack源码安装nrpe

最近弄saltstack弄上瘾了,今天又弄了saltstack源码安装nrpe,安装nrpe之前需要安装nagios-plugins,首先是top.sls文件: [[email protected] salt]# cat top.sls base: '*': - nagios [[email protected] salt]# tree nagios   #目录结构 nagios ├── conf.sls ├── files │?? ├── conf.sh │?? ├── nagios-plug