4.1 salt nginx haproxy keepalived memcached

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:
1
2
3
4
5
salt install haproxy
 
 
 
http: / / www.cnblogs.com / reblue520 / p / 6732913.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
https: / / chegva.com / 794.html
 
 
haproxy.install.sls
include pkg.pkg - init  依赖
haproxy - install  -  file .managed cmd.run 编译haproxy
haproxy - init  -  file .managed cmd.run 启动脚本并chkconfig
haproxy - config - dir  file .directory   目录权限
 
cluster.haproxy - outside.sls
include haproxy.install  
haproxy - service  -  file .managed service.running  haproxy配置文件,服务自启动
 
# cd /srv/salt/base/
# vim top.sls
base:
'*' :
-  init.env_init
prod:
'*' :
-  cluster.haproxy - outside
 
语法
-  require:
-  cmd: haproxy - init
-  watch:
-  file : haproxy - service
-  unless: test  - / usr / local / haproxy


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
salt install keepalived 
/ etc / keepalived / keepalived.conf
# cp keepalived/etc/init.d/keepalived.init /srv/salt/prod/keepalived/files/
# cp keepalived/etc/init.d/keepalived.sysconfig /srv/salt/prod/keepalived/files/
# cp keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/
 
keepalived.install.sls
include pkg.pkg - init  依赖
keepalived - install  -  file .managed cmd.run 编译keepalived
keepalived - init  -  file .managed cmd.run  file .managed  file .directory 启动脚本并chkconfig
 
  
cluster.keepalived - outside.sls
include keepalived.install  
keepalived - service  -  file .managed service.running  keepalived配置文件,服务自启动
 
语法
-  template: jinja
{ %  if  grains[ 'fqdn' = =  'mini1'  % }
-  ROUTEID: haproxy_ha
-  STATEID: MASTER
-  PRIORITYID:  150
{ %  elif  grains[ 'fqdn' = =  'node2.chinasoft.com'  % }
-  ROUTEID: haproxy_ha
-  STATEID: BACKUP
-  PRIORITYID:  100
{ %  endif  % }


1
2
3
4
5
6
7
8
9
10
11
salt install memcached
user.www  
libevent.install   -  file .managed cmd.run require  -  file : libevent - source - install
memcached.install 
  include:  -  libevent.install  -  user.www
  -  file .managed cmd.run 
  require  -  cmd: libevent - source - install  -  file : memcached - source - install
memcached.service
  include:  -  memcached.install
  -  cmd.run
  require  -  cmd: memcached - source - install  -  user: www - user - group


与安装haproxy区别的是,memcached引用了libevent,本来是3步,最后变为4步


1
2
3
4
5
6
7
8
9
10
salt install nginx (三步)
pcre - source - install   - file .managed  - cmd.run
nginx.install   
  - include  -  pcre.install  -  user.www
  nginx - source - install   - file .managed  - cmd.run 
nginx.service
  -  include nginx.install
  nginx - init  - file .managed  - cmd.run
  / usr / local / nginx / conf / nginx.conf
  nginx - service  file .directory


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
salt php + nginx虚拟主机
1.php 配置
2.php  redis 模块
3.php  memcached模块
4.bbs  论坛
 
1.php 配置
php - init
php - install  - include  -  file .manage  - cmd.run
2.php  redis模块
php - redis - install
   -  file .manage  - cmd.run
   -  file .append
 
 
总结
1.php 配置
pkg - php  -  pkg.installed 
php - source - install  -  file .manage  - cmd.run
php - ini 
php - fpm
php - fastcgi - service
2.php  redis 模块
redis - plugin
/ usr / local / php - fastcgi / etc / php.ini
3.php  memcached模块
memcache - plugin
/ usr / local / php - fastcgi / etc / php.ini
4.bbs  论坛
-  require:
-  service: php - fastcgi - service
-  watch_in:
-  service: nginx - service

所有的目录结构

[root@saltstack-node1 ~]# tree /srv/salt/

/srv/salt/├── base│ ├── init│ │ ├── audit.sls

├── cluster

│ ├── files

│ │ ├── haproxy-outside.cfg

│ │ └── haproxy-outside-keepalived.conf

│ ├── haproxy-outside-keepalived.sls

│ └── haproxy-outside.sls

├── haproxy

│ ├── files

│ │ ├── haproxy-1.5.3.tar.gz

│ │ └── haproxy.init

│ └── install.sls

├── keepalived

│ ├── files

│ │ ├── keepalived-1.2.17.tar.gz

│ │ ├── keepalived.init

│ │ └── keepalived.sysconfig

│ └── install.sls

├── libevent

│ ├── files

│ │ └── libevent-2.0.22-stable.tar.gz

│ └── install.sls

├── memcached

│ ├── files

│ │ └── memcached-1.4.24.tar.gz

│ ├── install.sls

│ └── service.sls

├── nginx

│ ├── files

│ │ ├── nginx-1.9.1.tar.gz

│ │ ├── nginx.conf

│ │ └── nginx-init

│ ├── install.sls

│ └── service.sls

├── pcre

│ ├── files

│ │ └── pcre-8.37.tar.gz

│ └── install.sls

├── php

│ ├── files

│ │ ├── init.d.php-fpm

│ │ ├── memcache-2.2.7.tgz

│ │ ├── php-5.6.9.tar.gz

│ │ ├── php-fpm.conf.default

│ │ ├── php.ini-production

│ │ └── redis-2.2.7.tgz

│ └── install.sls

├── user

│ └── www.sls

└── web

├── bbs.sls

└── files

└── bbs.conf




salt安装nginx服务

vim /srv/salt/top.sls

dev:

  'minion.hello.com':

    - nginx

cd /srv/salt

mkdir dev

cd dev

mkdir nginx

/srv/salt/dev/nginx  nginx.sls

nginx:

  pkg:

    - installed

  service:

    - running

    - enable: Ture

    - watch:

      - file: /etc/nginx/nginx.conf

      - file: /etc/nginx/conf.d/default.conf

    - require:

      - pkg: nginx

/etc/nginx/nginx.conf:

  file.managed:

    - source: salt://nginx/nginx.conf

    - mode: 664

    - user: root

    - group: root

/etc/nginx/conf.d/default.conf:

  file.managed:

    - source: salt://nginx/default.conf

    - mode: 664

    - user: root

    - group: root

salt 'minion.hello.com' state.highstate



salt haproxy

http://www.cnblogs.com/caoxiaojian/p/5095653.html

这篇博文写的非常详细,极力推荐,但是要自己操作。因为目录结构复杂点。

mkdir /srv/salt/prod/pkg/

mkdir /srv/salt/prod/haproxy/

mkdir /srv/salt/prod/haproxy/files

cd /srv/salt/prod/pkg/

vim pkg-init.sls

pkg-init:                            # ID describe

  pkg.installed:                    # pkg模块 installed方法

    - names:

      - gcc

      - gcc-c++

      - glibc

      - make

      - autoconf

      - openssl

      - openssl-devel

cd /srv/salt/prod/haproxy/files/

ll

-rw-r--r-- 1 root root 1538976 11月  7 09:04 haproxy-1.6.2.tar.gz

cp haproxy-1.6.2.tar.gz  /usr/local/src/

cd /usr/local/src/

make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy

vim haproxy.init 

BIN=/usr/local/haproxy/sbin/$BASENAME

cp haproxy.init /srv/salt/prod/haproxy/files/

cd /srv/salt/prod/haproxy/

vim install.sls


include:                                                   # 导入pkg目录下的pkg-init.sls文件

  - pkg.pkg-init


haproxy-install:                                           # 定义声明一个ID

  file.managed:                                            # file模块下的managed方法

    - name: /usr/local/src/haproxy-1.6.2.tar.gz            # 文件名:拷贝minion端这里,文件名是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                   # 判断是否存在,unless返回值是false时,才执行命令

    - require:                                             # 依赖下面的内容

      - pkg: pkg-init                                       # pkg是模块

      - file: haproxy-install                              # file也是模块


haproxy-init:                                              # 定义声明一个ID

  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: haproxy-init


net.ipv4.ip_nonlocal_bind:                                   # 定义声明一个ID

  sysctl.present:                                          # 修改系统的kernel值

    - value: 1                                               # 改值为1


haproxy-config-dir:                                                    

  file.directory:

    - name: /etc/haproxy

    - user: root

    - group: root

    - mode: 755


salt 'linux-node1.*' state.sls haproxy.install env=prod


注意

cat /etc/salt/master

file_roots:

  base:

    - /srv/salt/base

  prod:

    - /srv/salt/prod

interface: ip

nodegroups:

     mysql: 'cm1'

目录结构

[root@nginx salt]# tree

.

├── base

│   └── _modules

│       └── my_disk.py

└── prod

    ├── haproxy

    │   ├── files

    │   │   ├── haproxy-1.5.4.tar.gz

    │   │   └── haproxy.init

    │   └── install.sls

    └── pkg

        └── pkg-init.sls




本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1915156,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
网络协议 算法 Java
nginx与keepalived的那些事
nginx与keepalived的那些事
103 0
|
6月前
|
应用服务中间件 nginx
服务搭建篇(四) 搭建基于Nginx + keepalived的高可用服务
比如我这里虚拟IP+nginx端口是 : 192.168.154.10:80 , 我直接访问 , 出来的是192.168.154.134服务器上的nginx , 因为我刚刚做了区分 , 所以这个时候就可以知道访问的是哪个机器的Nginx , 然后我们把134的Nginx停掉 , 然后再次访问 , 仍然可以使用 , 此时 ,出现的135的页面 , 也就是访问的是192.168.154.135的Nginx
92 0
|
5月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
186 0
|
6月前
|
负载均衡 算法 应用服务中间件
百度搜索:蓝易云【Linux系统如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?】
通过上述步骤,你可以在Linux系统中使用HAProxy、Nginx和Keepalived来实现负载均衡。这些工具可以帮助你将流量分配到多个后端服务器上,提高系统的性能、可靠性和可扩展性。
90 0
|
8月前
|
tengine 负载均衡 应用服务中间件
Nginx+Keepalived高可用集群部署详细文档
Nginx+Keepalived高可用集群部署详细文档
|
4月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
140 1
|
5月前
|
应用服务中间件 Shell nginx
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(二)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
5月前
|
负载均衡 NoSQL 应用服务中间件
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(一)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
5月前
|
Kubernetes 应用服务中间件 Linux
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
58 0
|
6月前
|
Ubuntu
nginx+keepalived实现高可用
如果通过keepalived实现高可用
66 0