一、部署Redis主从

需求:

  1. 192.168.56.11是主,192.168.56.12是从
  2. redis监听自己的ip地址,而不是0.0.0.0

分析: 
linux-node1 安装 配置 启动 
linux-node2 安装 配置 启动 设置主从

[root@linux-node1 ~]# yum install redis -y
[root@linux-node1 prod]# mkdir redis/files -p
[root@linux-node1 redis]# cp /etc/redis.conf /srv/salt/prod/redis/files/
[root@linux-node1 redis]# tree
.
├── files
│ └── redis.conf
└── init.sls directory, files
[root@linux-node1 redis]# vim init.sls
redis-install:
pkg.installed:
- name: redis redis-config:
file.managed:
- name: /etc/redis.conf
- source: salt://redis/files/redis.conf
- user: root
- group: root
- mode:
- template: jinja
defaults:
PORT:
IPADDR: {{ grains['fqdn_ip4'][] }} redis-service:
service.running:
- name: redis
- enable: True
- reload: True
[root@linux-node1 redis]# salt '*' state.sls redis.init saltenv=prod #测试单一执行sls是否成功
[root@linux-node1 redis]# netstat -tulnp|grep redis-server
tcp 192.168.56.11: 0.0.0.0:* LISTEN /redis-server
[root@linux-node2 ~]# netstat -tulnp |grep redis-server
tcp 192.168.56.12: 0.0.0.0:* LISTEN /redis-server 主从配置:
[root@linux-node1 redis]# vim master.sls
include:
- redis.init
[root@linux-node1 redis]# vim slave.sls
include:
- redis.init slave_config:
cmd.run:
- name: redis-cli -h 192.168.56.12 slaveof 192.168.56.11 --->设置主从
- unless: redis-cli -h 192.168.56.12 info |grep role:slave-->判断node2是否为从,如果是就不执行设置主从
- require:
- service: redis-service
[root@linux-node1 redis]# vim /srv/salt/base/top.sls #配置top file
prod:
'linux-node1.example.com':
- lamp
- redis.master
'linux-node2.example.com':
- lamp
- redis.slave
[root@linux-node1 redis]# salt '*' state.highstate
......
----------
ID: slave_config
Function: cmd.run
Name: redis-cli -h 192.168.56.12 slaveof 192.168.56.11
Result: True
Comment: Command "redis-cli -h 192.168.56.12 slaveof 192.168.56.11 6379" run
Started: ::46.428924
Duration: 31.328 ms
Changes:
----------
pid: retcode: stderr:
stdout:
OK Summary for linux-node2.example.com
-------------
Succeeded: (changed=)
Failed:
-------------
Total states run:
Total run time: 1.527 s
......
[root@linux-node1 redis]# tree
.
├── files
│ └── redis.conf
├── init.sls
├── master.sls
└── slave.sls directory, files
[root@linux-node1 redis]# cat slave.sls
include:
- redis.init slave_config:
cmd.run:
- name: redis-cli -h 192.168.56.12 slaveof 192.168.56.11
- unless: redis-cli -h 192.168.56.12 info |grep role:slave
- require:
- service: redis-service

TIPS:生产环境中,务必使用test=True进行与测试,并且目标选择一个节点进行,避免错误,影响业务的运行。

二、SaltStack–Job管理

官方文档:https://docs.saltstack.com/en/2016.11/ref/modules/all/salt.modules.saltutil.html 
在SaltStack里面执行任何一个操作都会在Master上产生一个jid号。Minion端会在cache目录下的proc目录创建一个以jid为名称的文件,这个文件里面的内容就是记录此次操作的记录,当操作处理完成后改文件会自动删除。而master端会记录每次操作的详细信息,这个记录都是存到在Master端cache目录下的jobs下。

[root@linux-node1 ~]# cd /var/cache/salt/master/jobs/----->任务管理目录
[root@linux-node1 jobs]# pwd
/var/cache/salt/master/jobs
[root@linux-node1 jobs]# ls
0e 2f 3a 4c 5c ac b2 bf e6 f4
0c 0f 3f 4e 5a 8b ad b9 c1 e9 fb
0d 5b 8c a5 af be c4 f1 fe
[root@linux-node1 linux-node1.example.com]# pwd
/var/cache/salt/master/jobs//f8d6ec1380412c95718d931cfb300e793f6b7316d58ad3f34dd57052ca178f/linux-node1.example.com
[root@linux-node1 linux-node1.example.com]# ll
total
-rw------- root root Jan : out.p
-rw------- root root Jan : return.p---->结果返回
[root@linux-node1 ~]# grep "#keep_jobs: 24" /etc/salt/master
#keep_jobs:
默认的缓存是24小时,可以进行修改。管理job是模块进行管理,由执行模块进行管理:SALT.MODULES.SALTUTIL salt '*' saltutil.clear_cache 清除缓存
salt '*' saltutil.find_job <job id> 查找当前在运行的job,并返回它的id
salt '*' saltutil.is_running 查看当前在运行的job
salt '*' saltutil.kill_job <job id> 杀死job

最新文章

  1. 初识ASP.NET MVC
  2. 【转】FlashBack总结之闪回查询与闪回表
  3. Scala 笔记
  4. CSS基础知识真难啊-position-relative-absolute
  5. deleteRow
  6. jQuery return false
  7. jquery select处理
  8. 汇编语言-求X的阶乘
  9. PHP中输出缓冲
  10. Cocos2d-X学习之Ref类
  11. canvas画图
  12. wordpress 显示数学公式 (MathJax-LaTeX)
  13. pm2部署nodejs项目
  14. 论文笔记:Prediction-Tracking-Segmentation
  15. 从BIRT报表文件中获取页面设置信息(页边距、纸张大小、输出方向)的方法
  16. eclipse不支持sun.*包的问题处理
  17. WORLD 目录排版调整
  18. 添加,删除List&lt;Map&lt;String, Object&gt;&gt;元素
  19. webstorm 配置 开发微信小程序
  20. uml类图符号

热门文章

  1. 3669. [NOI2014]魔法森林【LCT 或 SPFA动态加边】
  2. Django中模型(四)
  3. [Python 多线程] Barrier (十一)
  4. [转]开源实时视频码流分析软件:VideoEye
  5. 通讯协议(一)HTTP协议
  6. [LuoguP1360][USACP07MAR]黄金阵容均衡
  7. DPDK测试用例(sample)编译
  8. 用 S5PV210 学习 Linux (二) 刷机(二)
  9. 关于JavaScript 常见的面试题
  10. WebSocket的原理,以及和Http的关系 (转载)