SaltStack Returner调研

少于 1 分钟阅读

Contact me

或者用邮件交流 jacky.wucheng@foxmail.com

1. Salt Returner

概念解释returner

minion接收到master发来的指令,将执行结果直接通过returner写入到其他地点。

作用

  1. 可以直接将结果写入数据库,消息队列等,不需要返回给master,将消息流的处理灵活化了。
  2. 通过给master发送异步的消息任务,结合returner,就可以利用salt的架构实现异步的任务。

1.1. MySQL Returner

要使用MySQL Returner的依赖

  • 安装MySQL-python的python module,否则该Returner不会启用,而且没有报错
    # 见源码salt/returners/mysql.py
    try:
        import MySQLdb
        HAS_MYSQL = True
    except ImportError:
        HAS_MYSQL = False

参考

1.2. 其他Returner

参考 Full list of builtin returners

1.3. Returner的应用场景

  1. 用Returner来做临时的监控采集器, 链接 用Saltstack的returners实现监控及执行结果回调不同链接同一篇文章
  2. salt自动部署zabbix,并且自动添加服务器角色和zabbix模板
  3. 用Saltstack的 returner modules和grains实现实时监控平台
  4. 利用salt local file returner 和 fluent采集数据

2. Job Management

2.1. Job Cache

关于job-cache的解释

master记录job和minion的返回结果的地方。

默认的job cache路径在linux上位置是:/var/cache/salt/master/jobs

    #
    [root@master jobs]# pwd
    /var/cache/salt/master/jobs
    [root@master jobs]# tree 17/
    17/
    └── 96e856a660a104fdd94d6270642917
        ├── client.jacky.com
        │   └── return.p
        └── jid
        

处理job cache的方式有两种

  1. 如上存储在master本地目录是第一种
  2. 第二种是存储在外部系统,又分为两种,优缺点参考 这里
    1. 由master来写数据,由master conf中的master_job_cache来控制
    2. 由minion来写数据,由minion conf中的ext_job_cache来控制

参考

3. 其他参考资料