《SaltStack技术入门与实践》——执行结果处理
执行结果处理
本章节参考《SaltStack技术入门与实践》,感谢该书作者: 刘继伟、沈灿、赵舜东
Return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过Return我们可以对SaltStack的每次操作记录,对以后日志审计提供了数据来源。目前官方已经支持30种Return数据存储与接口,我们可以很方便地配置与使用它。当然也支持自己定义的Return。在以后会跟大家介绍如果使用python语言扩展一个适合自己需求的Return。在选择和配置好要使用的Return后,只需在salt命令后面指定Return即可。
1、查看所有Return列表
[root@SaltMaster1(10.182.88.136)]$~:>salt '*' sys.list_returners
10.182.76.78:
- carbon
- couchdb
- elasticsearch
- etcd
- highstate
- hipchat
- local
- local_cache
- mattermost
- multi_returner
- pushover
- rawfile_json
- slack
- smtp
- splunk
- sqlite3
- syslog
- telegram
2、Return流程
Return是在Master端触发任务,然后Minion接受处理任务后直接与Return存储服务器建立连接,然后把数据Return存到存储服务器。关于这点大家一定要记住,因为这个过程是Minion端操作存储服务器,所以要确保Minion端的配置跟依赖包是正确的。
3、使用Redis作为Return存储方式
这里我们就借用官网的例子来熟悉下怎么使用Return。这里我选择Redis作为Return结果的存储方式。如果你了解整个Return的流程后,就知道我们需要改哪些配置了:
- Minion配置文件。
- 在Minion上安装Redis Python Client
首先需要在Minion配置文件里面定义Return存储服务器信息。添加Redis服务器信息即可,代码如下:
redis.db: ‘'' #redis数据库
redis.host: ‘'127.0.0.1' #redis主机(ip地址和域名都行)
redis.port: ‘'' #redis端口
Minion配置文件已经添加好了。然后我们再来安装依赖包。因为是Minion直接操作Redis服务器。我们得确保Redis Python Client文件已经安装,代码如下:
[root@SaltMinion2(10.182.76.78)]$~:>python -c 'import redis; print(redis.VERSION)'
(2, 10, 6)
如果能显示出版本号,说明当前Python版本下的Redis Client已经安装好。如果提示ImportError: No Module named redis,则需要安装Redis Client。关于安装方法可以参考Redis官网,或pip安装,如下:
[root@SaltMinion2(10.182.76.78)]$~:>pip3 install redis
Looking in indexes: http://mirrors.jd.com/pypi/web/simple
Collecting redis
Downloading http://mirrors.jd.com/pypi/web/packages/3b/f6/7a76333cf0b9251ecf49efff635015171843d9b977e4ffcf59f9c4428052/redis-2.10.6-py2.py3-none-any.whl (64kB)
100% |################################| 71kB 26.5MB/s
Installing collected packages: redis
Successfully installed redis-2.10.6
现在Minion配置文件与Redis Python Client包都安装完毕了。我们重启Minion服务,如下所示:
[root@SaltMinion2(10.182.76.78)]$~:>/etc/rc.d/init.d/salt-minion restart
Stopping salt-minion:root:10.182.76.78 daemon: OK
Starting salt-minion:root:10.182.76.78 daemon: OK
在我们执行Return之前,大家可以先登录到Redis服务器上查看Redis Monitor信息。这样我们就可以实时查看到Redis相关的信息。我们先在Master上执行一个Module,然后return到Redis:
[root@SaltMaster1(10.182.88.136)]$~:>salt '*' cmd.run 'hostname' --return redis
10.182.76.78:
minion1
这个时候我们就可以看到Redis服务器上出现以下内容:
./redis-cli monitor
OK
1461054358.412376 [0 127.0.0.1:58564] "SELECT" ""
1461054358.412717 [0 127.0.0.1:58564] "SET" "minion1:20160419162558137768" "{\"fun_args\": [\"hostname\"], \"jid\": \"20160419162558137768\", \"return\": \"minion1\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion1\"}"
1461054358.413143 [0 127.0.0.1:58564] "LPUSH" "minion1:cmd.run" ""
1461054358.413482 [0 127.0.0.1:58564] "SADD" "minions" "minion1"
1461054358.413791 [0 127.0.0.1:58564] "SADD" "jids" ""
关于这个JSON串这里就不解释了,很容易理解。关于官网的其他例子这里就不一一演示了。通过这个例子大家能理解Return流程就行,配置方面官网都有很详细的说明。关于Return这里多说一点,大家如果了解上面的流程发现是每台minion跟存储服务器连接后发送返回数据。在大规模的Minion环境下并不适合企业级应用。也有网友通过event事件实现Master直接Return到存储服务器。
《SaltStack技术入门与实践》——执行结果处理的更多相关文章
- 《SaltStack技术入门与实践》—— Grains
Grains 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前几章我们已经了解SaltStack各个组件以及通过一个案例去熟悉它的各种应用,从这章开 ...
- 《SaltStack技术入门与实践》—— Peer
Peer 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Peer组件是SaltStack中Minion向Master发布任务的一个组件,使用Peer ...
- 《SaltStack技术入门与实践》—— Renderer组件
Renderer组件 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前面我们已经提过使用Python语言编写state.sls文件.在SaltSta ...
- 《SaltStack技术入门与实践》—— Event和Reactor系统
Event和Reactor系统 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Event是SaltStack里面的对每个事件的一个记录,它相比job ...
- 《SaltStack技术入门与实践》—— Job管理
Job管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 在SaltStack里面执行任何一个操作都会在Master上产生一个jid号.Minion ...
- 《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>3 Memcached配置管理
实践案例 <中小型Web架构>3 Memcached配置管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Memcached介绍 Me ...
- 《SaltStack技术入门与实践》—— Mine
Mine 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Mine是SaltStack收集Minion数据存储到Master的一个组件,它的功能与Gr ...
- saltstack技术入门与实践
基本原理 SaltStack 采用`C/S`模式,server端就是salt的master,client端就是minion,minion与master之间通过`ZeroMQ`消息队列通信. minio ...
- 读书笔记---《Docker 技术入门与实践》---为镜像添加SSH服务
之前说到可以通过attach和exec两个命令登陆容器,但是如果遇到需要远程通过ssh登陆容器的场景,就需要手动添加ssh服务. 下面介绍两种方法创建带有ssh服务的镜像,commit命令创建和通过D ...
随机推荐
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作
增加更新操作 更新用户的配置 测试类 删除的操作 这里的parpameterType值可以是:Integer.INTEGER.int.java.lang.Integer 讲到typeAliases标签 ...
- 把自己活成AI
干啥都失败,所以从0重新开始. 把自己活成AI 准则1:一件事的对错,只代表这件事本身.多一点的解释都是错误. 准则2:大多数人默认遵守的就是规则和法律.大多数人默认承认的就是道德. 然后取其和法律的 ...
- HDU4372(第一类斯特林数)
题意:N座高楼,高度均不同且为1~N中的数,从前向后看能看到F个,从后向前看能看到B个,问有多少种可能的排列数. 0 < N, F, B <= 2000 首先我们知道一个结论:n的环排列的 ...
- P1118 [USACO06FEB]数字三角形`Backward Digit Su`… (dfs)
https://www.luogu.org/problemnew/show/P1118 看的出来是个dfs 本来打算直接从下到上一顿搜索 但是不会 看了题解才知道系数是个杨辉三角....... 这样就 ...
- [转帖]功耗降50%,性能升35%!三星3nm GAA 2021年量产
功耗降50%,性能升35%!三星3nm GAA 2021年量产 http://www.chinaflashmarket.com/Instructor 在三星晶圆代工技术论坛(Samsung Found ...
- [BZOJ 4668]冷战(带边权并查集+启发式合并)
[BZOJ 4668]冷战(并查集+启发式合并) 题面 一开始有n个点,动态加边,同时查询u,v最早什么时候联通.强制在线 分析 用并查集维护连通性,每个点x还要另外记录tim[x],表示x什么时间与 ...
- pistat 查看进程状态
该pidstat命令用于监视当前正在由Linux内核管理的各个任务.对于使用选项-p选择的每个任务,或者如果使用了选项-p ALL,则它将写入Linux内核管理的 每个任务的标准输出活动.不选择任何任 ...
- 封装 多态 类的约束 super
python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...
- linux查找进程id和杀死进程以及查看内存??
ps 命令用于查看当前正在运行的进程 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 -e 显示所有进程,环境变量 此参数的效果和指定"A&q ...
- Delphi XE2_XE3 Update
Delphi 和 C++Builder XE2 更新摘要 XE2的关键特性如下: 1. FireMonkey Application Platform支持运行在Windows (32和64位),Mac ...