Saltstack自动部署Haproxy+keepalived+nginx+memcache+php(fastcgi)
一系列:
部署Haproxy总的目录结构
[root@NEI-pudong-idc2E-wdjky.me srv]# tree salt/ salt/ ├── base │ ├── init │ │ ├── audit.sls │ │ ├── dns.sls │ │ ├── env_init.sls │ │ ├── epel.sls │ │ ├── files │ │ │ └── resolv.conf │ │ ├── history.sls │ │ └── sysctl.sls │ └── top.sls └── prod ├── cluster │ ├── files │ │ ├── haproxy-outside.cfg │ │ └── haproxy-outside.cfg.bak │ └── haproxy-outside.sls ├── haproxy │ ├── files │ │ ├── haproxy-1.4.24.tar.gz │ │ └── haproxy.init │ └── install.sls ├── keepalived │ └── files └── pkg └── pkg-init.sls
1.salt master 服务器上对 /etc/salt/master 配置文件进行多环境配置
file_roots: base: - /srv/salt/base prod: - /srv/salt/prod pillar_roots: base: - /srv/salt/pillar prod: - /srv/salt/pillar
2.创建目录结构
[root@NEI-pudong-idc2E-wdjky.me srv]# pwd /srv [root@NEI-pudong-idc2E-wdjky.me srv]# tree . ├── pillar │ ├── base │ └── prod └── salt ├── base └── prod
3.重启salt-master
/etc/init.d/salt-master restart
4.系统初始化
4.1.DNS配置
[root@NEI-pudong-idc2E-wdjky.me srv]# cat /srv/salt/base/init/dns.sls /etc/resolv.conf: file.managed: - source: salt://init/files/resolv.conf - user: root - group: root - mode: 644
4.2.History记录时间
[root@NEI-pudong-idc2E-wdjky.me srv]# cat /srv/salt/base/init/history.sls /etc/profile: file.managed: - text: - export HISTTIMEFORMAT="%F %T(`whoami`)"
4.3.命令操作审计
[root@NEI-pudong-idc2E-wdjky.me srv]# cat /srv/salt/base/init/audit.sls /etc/bashrc: file.append: - text: - export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):['pwd']"$msg"; }'
4.4.epel仓库
[root@NEI-pudong-idc2E-wdjky.me srv]# cat /srv/salt/base/init/epel.sls yum_rep_release: pkg.installed: - sources: - epel-release: http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm - unless: rpm -qa|grep epel-release-6-8
4.5.初始化环境引用
[root@NEI-pudong-idc2E-wdjky.me srv]# cat /srv/salt/base/init/env_init.sls include: - init.dns - init.history - init.audit
5.Haproxy配置管理
5.1.pkg模块用来安装源码编译依赖包
[root@NEI-pudong-idc2E-wdjky.me prod]# cat /srv/salt/prod/pkg/pkg-init.sls pkg-init: pkg.installed: - names: - gcc - gcc-c++ - glibc - make - autoconf - openssl - openssl-devel
5.2.Haproxy服务配置
cd /usr/local/src/ cp haproxy-1.4.24.tar.gz /srv/salt/prod/haproxy/files tar xf haproxy-1.4.24.tar.gz cd /usr/local/src/haproxy-1.4.24/examples/ sed -i 's/\/usr\/sbin\/'\$BASENAME'/\/usr\/local\/haproxy\/sbin\/'\$BASENAME'/g' haproxy.init cp haproxy.init /srv/salt/prod/haproxy/files
5.3.编写Haproxy安装sls
[root@NEI-pudong-idc2E-wdjky.me haproxy]# cat /srv/salt/prod/haproxy/install.sls include: - pkg.pkg-init
haproxy-install: file.managed: - name: /usr/local/src/haproxy-1.4.24.tar.gz - source: salt://haproxy/files/haproxy-1.4.24.tar.gz - mode: 755 - user: root - group: root cmd.run: - name: cd /usr/local/src && tar xf haproxy-1.4.24.tar.gz && cd haproxy-1.4.24 && 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 - mode: 755 - user: root - group: root - require: - cmd: haproxy-install haproxy-config-dir: file.directory: - name: /etc/haproxy - mode: 755 - user: root - group: root haproxy-init: cmd.run: - name: chkconfig --add haproxy - unless: chkconfig --list|grep haproxy - require: - file: /etc/init.d/haproxy
5.4.Haproxy业务应用
[root@NEI-pudong-idc2E-wdjky.me haproxy]# cat /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
[root@NEI-pudong-idc2E-wdjky.me haproxy]# cat /srv/salt/prod/cluster/files/haproxy-outside.cfg global log 127.0.0.1:514 local0 warning chroot /usr/local/haproxy group haproxy user haproxy daemon nbproc 8 pidfile /usr/local/haproxy/logs/haproxy.pid maxconn 20000 spread-checks 3
defaults log global mode http #option httplog #option httpclose #option dontlognull #option forwardfor option redispatch #option abortonclose retries 3 #balance roundrobin #balance source #balance leastconn contimeout 5000 clitimeout 50000 srvtimeout 50000 #timeout check 2000
listen randolph_status bind *:80 mode http stats enable stats uri /admin?status #stats realm haproxty\ haproxy stats auth salt:randolph #stats auth admin1:admin1 stats hide-version #stats admin if TRUE #listen webserver #option httpchk HEAD /checkstatus.html HTTP/1.0 option httpclose option forwardfor balance roundrobin cookie SERVERID insert indirect timeout server 15s timeout connect 15s server web01 192.168.21.161:8082 check port 80 inter 5000 fall 5 server web02 192.168.21.163:8082 check port 80 inter 5000 fall 5
5.5.编写Haproxy安装sls
[root@NEI-pudong-idc2E-wdjky.me haproxy]# cat /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
6.执行Haproxy状态
[root@NEI-pudong-idc2E-wdjky.me base]# cat top.sls base: jenkins.saltstack.me: - init.env_init prod: jenkins.saltstack.me: - cluster.haproxy-outside
持续更新 ......

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
迁移Exchange队列至其它服务器继续传送队列邮件
Exchange 2010中,队列也是以数据库文件的方式保存在Exchange 安装目录中,前段时间碰到一个网络问题,队列文件过大将C盘空间占满,而导致服务无启动的问题,排除方法如下: 一天早上,接到某用户报障,说Exchange连线正常,但无法收发外部的邮件。接到用户报障后,远程连线,Exchange服务的C盘总共120G,但可用空间只有几十KB,所以Transport服务因为空间不足而无法启动,由于此服务为HUB/Mailbox角色,安装目录为C盘,MailBox DB/LOG目录全部在其它盘,首先排除了Mailbox占用C盘空间的问题!继续排查,发现C:\Program Files\Microsoft\Exchange Server\V14\Transport Roles\data\Queue下的mail.Que文件涨到了60G左右!所以确认是因为队列数据文件太大占用空间,而导致C盘空间不足引起的服务停止! 为了保证队列中的邮件不丢失,先将Queue,整个目录移到其它分区下,然后启动Transport服务,服务恢复,Exchange恢复正常! 为了重启之前哪个60G的mail.q...
- 下一篇
Java继承篇总结
继承: 1)概念 把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容。这个关系叫继承。 1.1)定义类时,通过“继承”一个现有的类,子类可以具有父类中的所有属性和方法。 2)Java中如何表示继承呢?格式是什么呢? A:用关键字extends表示 B:格式: class 子类名 extends 父类名 {} 2.1)案例 publicclassAnimal{ Stringname; Stringcolor; publicvoidrun(){System.out.println("这只动物正在奔跑"); } } packagecom.sp; publicclassPersonextendsAnimal{ publicstaticvoidmain(String[]args){ Personp=newPerson(); p.name="TOM"; p.color="白色"; p.run(); } } 2.2)方法重载 2.2.1)当子类继承父类时,可以从父类继承它的属性和方法。 2.2.2)如果从父类继承的方法不能满足子类的需...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启