SaltStack安装redis
在使用salt安装redis之前,顺便说一下salt的目录规划:除了安装redis之外,之后可能还要安装mysql、haproxy、keepalived等等,这些在做主从或者其他的时候,配置可能不一样,但是安装是一样的,所以我们把他们统一放在/srv/salt/prod/modules目录下面,为他们分别创建属于自己的目录。
cd /srv/salt/prod mkdir -p modules/{apache,haproxy,keepalived,mysql,redis}
一.写一个redis的安装状态:
cd /srv/salt/prod/modules/redis/ vim redis-install.sls
写入以下内容:
redis-install: pkg.installed: - name: redis
二.写redis集群安装配置状态:
cd /srv/salt/prod mkdir redis-cluster cd redis-cluster/ vim 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: 100M redis-slave-service: service.running: - name: redis - enable: True - watch: - file: redis-master-config
注:salt://redis-cluster/files/redis-master.conf 这里的文件是在已经安装过的redis服务器上拷来的配置文件,如果没有,可以找一台机器,通过yum安装一个redis,将/etc/redis.conf拷贝到该目录下起名叫redis-master.conf。
三.修改salt源上的redis配置文件
vim /srv/salt/prod/redis-cluster/files/redis-master.conf
bind 0.0.0.0 daemonize yes maxmemory {{ REDIS_MEM }}
修改以上3个地方
四.测试配置
salt '*' state.sls redis-cluster.redis-master test=True saltenv=prod
注:我们对于redis的安装状态文件,并没有写在base目录下,而是写在了prod目录下,仔细观察写状态的sls文件中,也没有指定salt所属目录,所以在执行的时候,通过命令行指定,就是通过saltenv指定目录。再从salt根目录下读取文件的时候,找的根目录就不是base了,是和base同级的prod目录下去找。
五.运行状态
salt '*' state.sls redis-cluster.redis-master saltenv=prod