本篇是salt安装redis服务实战篇,主要是通过saltstack进行部署,生产如果使用,请在测试环境测试后在执行,记得叫test=Ture,如果您对saltstack不太熟悉,建议您查看下:Saltstack相关文章
一、环境介绍
服务器系统 | IP | 主机名 |
---|---|---|
CentOS7.2 x86_64 | salt-master | 192.168.56.11 |node01 |
CentOS7.2 x86_64 | salt-minion | 192.168.56.12 |node02 |
二、Salt部署Redis部署过程
在前面的文章中已经搭建好了salt-master和saltminion环境
2.1,在prod目录下创建redis相关的目录,存放状态文件
[root@node01 ~]# cd /srv/salt/prod/
[root@node01 prod]# mkdir modules/redis -p
[root@node01 prod]# cp redis-install.sls modules/redis/
[root@node01 prod]# tree modules/ ##这里的目录要与下面的2.3中include目录统一
modules/
└── redis
└── redis-install.sls
2.2 进入redis目录创建redis基础状态文件,这里我们用简单的rpm包按照为例
[root@node01 prod]# cat redis-install.sls
redis-install:
pkg.installed:
- name: redis
2.3 有时候我们修改redis的配置文件或创建集群
[root@node01 prod]# pwd
/srv/salt/prod
[root@node01 prod]# mkdir redis-cluster
[root@node01 redis-cluster]# vi redis-master.sls
[root@node01 redis-cluster]# cat redis-master.sls
include:
- modules.redis.redis-install
redis-master-config:
file.managed:
- name: /etc/redis.conf
- source: salt://redis-cluster/files/redis-master.conf
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
REDIS_MEM: 1G
redis-master-service:
service.running:
- name: redis
- enable: True
- watch:
- file: redis-master-config
三、按照redis取配置文件作为salt模板
3.1 server安装redis
安装1个redis,把server上的配置文件作为模板
[root@linux-node1 redis-cluster]# yum install redis
[root@node01 redis-cluster]# mkdir /srv/salt/prod/redis-cluster/files/
[root@node01 redis-cluster]# cp /etc/redis.conf /srv/salt/prod/redis-cluster/files/
[root@node01 redis-cluster]# tree
.
├── files
│ └── redis.conf
└── redis-master.sls
3.2 重命名redis模板文件名
[root@node01 files]# pwd
/srv/salt/prod/redis-cluster/files
[root@node01 files]# mv redis.conf redis-master.conf
3.3 更改redis配置文件模板,bind也可以只监听内网端口
[root@node01 files]# grep -E 'bind|daemonize|maxmemory' redis-master.conf |grep -v ^#
bind 0.0.0.0 #监听的ip
daemonize yes #开启守护进程
maxmemory {{ REDIS_MEM }} #最大内存取jia模板里的
四,测试,因为是在prod目录下 需要添加 saltenv=prod环境变量
[root@node01 prod]# salt 'node02' state.sls redis-cluster.redis-master test=True saltenv=prod
上面执行成功,就把test=True去掉
,真正去执行
[root@linux-node1 redis-cluster]# salt 'linux-node2*' state.sls redis-cluster.redis-master saltenv=prod
登陆node2节点查看redis服务已经成功启动
[root@linux-node2 ~]# ps aux |grep redis
redis 5147 0.3 0.3 142904 5808 ? Ssl 22:48 0:00 /usr/bin/redis-server 0.0.0.0:6379
root 5192 0.0 0.0 112648 976 pts/0 S+ 22:49 0:00 grep --color=auto redis
五、重点总结
生产环境我们的状态模块可以在prod下面,在执行的时候需要"设置环境saltenv=prod"(使用top.sls不需要设置环境变量)
记得使用"test=True先测试"
提前查清楚软件包和相关配置文件
当使用jinja模板管理时,可以不用登陆redis服务器就可以查看redis设置的最大内存
- QQ精品交流群
-
- 微信公众号
-