zoukankan      html  css  js  c++  java
  • 《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
    View Code

    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: ‘'0'              #redis数据库
    redis.host: ‘'127.0.0.1'    #redis主机(ip地址和域名都行)
    redis.port: ‘'6379'         #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
    View Code

      现在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" "0"
    
    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" "20160419162558137768"
    
    1461054358.413482 [0 127.0.0.1:58564] "SADD" "minions" "minion1"
    
    1461054358.413791 [0 127.0.0.1:58564] "SADD" "jids" "20160419162558137768"
    View Code

      关于这个JSON串这里就不解释了,很容易理解。关于官网的其他例子这里就不一一演示了。通过这个例子大家能理解Return流程就行,配置方面官网都有很详细的说明。关于Return这里多说一点,大家如果了解上面的流程发现是每台minion跟存储服务器连接后发送返回数据。在大规模的Minion环境下并不适合企业级应用。也有网友通过event事件实现Master直接Return到存储服务器。

  • 相关阅读:
    上门量体不能停,量品打造“一人一版”的私人定制衬衫,半年覆盖30个城市
    直击中小互联网企业痛点,程序员客栈推出短期雇佣功能
    现在,培训老师也有可能是你未来的 Boss
    【蓝领日志】捷库,给B端提供蓝领员工的标准化培训工具
    【调研】华图教育:领跑公职培训市场
    社区服务中心+护理员培训+云平台,中康行健“一体两翼”构建养老生态体系
    餐厅孵化器“优粮生活”,用孵化模式打造统一独立外卖品牌
    语培市场热度不减,“手韩”背后的垂直领域空间在哪?
    母基金_百度百科
    小编亲测杭州最火的海南鸡饭,最好吃的居然是……-搜狐吃喝!!!
  • 原文地址:https://www.cnblogs.com/zuoyang/p/9221358.html
Copyright © 2011-2022 走看看