执行结果处理

本章节参考《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技术入门与实践》——执行结果处理的更多相关文章

  1. 《SaltStack技术入门与实践》—— Grains

    Grains 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前几章我们已经了解SaltStack各个组件以及通过一个案例去熟悉它的各种应用,从这章开 ...

  2. 《SaltStack技术入门与实践》—— Peer

    Peer 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Peer组件是SaltStack中Minion向Master发布任务的一个组件,使用Peer ...

  3. 《SaltStack技术入门与实践》—— Renderer组件

    Renderer组件 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 前面我们已经提过使用Python语言编写state.sls文件.在SaltSta ...

  4. 《SaltStack技术入门与实践》—— Event和Reactor系统

    Event和Reactor系统 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Event是SaltStack里面的对每个事件的一个记录,它相比job ...

  5. 《SaltStack技术入门与实践》—— Job管理

    Job管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 在SaltStack里面执行任何一个操作都会在Master上产生一个jid号.Minion ...

  6. 《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>3 Memcached配置管理

    实践案例 <中小型Web架构>3 Memcached配置管理 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Memcached介绍 Me ...

  7. 《SaltStack技术入门与实践》—— Mine

    Mine 本章节参考<SaltStack技术入门与实践>,感谢该书作者: 刘继伟.沈灿.赵舜东 Mine是SaltStack收集Minion数据存储到Master的一个组件,它的功能与Gr ...

  8. saltstack技术入门与实践

    基本原理 SaltStack 采用`C/S`模式,server端就是salt的master,client端就是minion,minion与master之间通过`ZeroMQ`消息队列通信. minio ...

  9. 读书笔记---《Docker 技术入门与实践》---为镜像添加SSH服务

    之前说到可以通过attach和exec两个命令登陆容器,但是如果遇到需要远程通过ssh登陆容器的场景,就需要手动添加ssh服务. 下面介绍两种方法创建带有ssh服务的镜像,commit命令创建和通过D ...

随机推荐

  1. 解决保存快照失败后redis无法写入的问题( Redis is configured to save RDB snapshots)

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Com ...

  2. 前端使用Git 切换分支 查看线上远程,本地切换

    想要使用Git切换线上分支时先 得先查看线上分支 git branch -a //查看线上分支 git branch //查看本地分支 这是线上的分支图(当前是master) 知道有那些分支就可以进行 ...

  3. Centos快速安装 Memcached

    rpm qa|grep memcached //首先检查memcache是否已经安装完成 yum install memcached //(提示你是否确认安装输入y)检查完成后执行安装命令 yum i ...

  4. Environment Modules简单使用

    Environment Modules简单使用 Environment Modules简介 Typically users initialize their environment when they ...

  5. dbvisualizer安装

    1. 下载DbVisualizer安装包. 2.解压. 无论是哪个版本的dbvisualizer破解版, 都可以找到安装程序(例dbvis_windows-x64_10_0_10.exe), dbvi ...

  6. docker--docker 网络管理

    9 docker 网络管理 9.1 默认网络 1.查看docker网络: docker network ls Docker中默认的三种网络分别为bridge.host和none,其中名为bridge的 ...

  7. 第六周课程总结&实验报告

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...

  8. js Functor Copy

    原文地址:https://segmentfault.com/a/1190000006051586?utm_source=tuicool&utm_medium=referral 本处仅仅个人存档 ...

  9. [转帖]mysql数据库主从配置

    mysql数据库主从配置 https://www.toutiao.com/i6680489302947791371/ 多做实验 其实挺简单的 很多东西 要提高自信 去折腾. 架构与我 2019-04- ...

  10. roslyn\csc.exe

    vs2019调试运行时提示roslyn\csc.exe错误时在nuget包管理器控制台里输入:  Update-Package Microsoft.CodeDom.Providers.DotNetCo ...