原文链接:http://pengyao.org/saltstack-master-external-job-cache.html

Salt Master外部Job Cache配置

SaltStack 2014.7之前, Minion端的执行结果想存储在外部系统中, 需要借助returner进行配置. 而returner的工作方式是由minion端直接连接对应的returner, 在分布式环境中由于网络等限制,该方式并不友好.

而在Master端, Job Cache会以文件的形式存储在Master本地磁盘, 对第三方系统并不友好. 基于此, 之前有分享过 基于Salt Event系统构建Master端returner , 需要启动另外一个进程, 进行监听Salt Event接口, 并将结果存储在第三方系统中. 刚好看到2014.7.0中master端增加了 master_job_cache 参数, 可以直接外放Job Cache, 就做个测试, 测试下这个功能.

环境说明

  • Salt Version: 2014.7.0

  • OS: CentOS 6.5 X86_64 (with EPEL)

  • 本次测试结果将存储在MySQL中, 为了方便测试, 已在Master本地部署了MySQL Server

开工

Note

以下操作如非特别注明, 均在Master端进行

前置配置

安装MySQLdb依赖:

yum -y install MySQL-python

配置本次测试需要使用的数据库及用户:

# 创建salt数据库mysql -e 'create database salt'# 创建用于连接salt数据库的用户mysql -e '"grant all on salt.* to salt@localhost identified by "salt_pass';# 将数据库配置添加至master配置文件中

创建用于存储Job的数据库表结构:

USE `salt`;--
-- Table structure for table `jids`
--DROP TABLE IF EXISTS `jids`;
CREATE TABLE `jids` (`jid` varchar(255) NOT NULL,`load` mediumtext NOT NULL,UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;--
-- Table structure for table `salt_returns`
--DROP TABLE IF EXISTS `salt_returns`;
CREATE TABLE `salt_returns` (`fun` varchar(50) NOT NULL,`jid` varchar(255) NOT NULL,`return` mediumtext NOT NULL,`id` varchar(255) NOT NULL,`success` varchar(10) NOT NULL,`full_ret` mediumtext NOT NULL,`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,KEY `id` (`id`),KEY `jid` (`jid`),KEY `fun` (`fun`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

配置Master

将MySQL连接权限等信息添加到Salt Master配置文件中:

echo -e "\n\n# MySQL\nmysql.host: 'localhost'\nmysql.user: 'salt'\nmysql.pass: 'salt_pass'\nmysql.db: 'salt'\nmysql.port: 3306" >> /etc/salt/master

配置master_job_cache选项, 以使将Job结果存储在MySQL中:

echo -e "\n\n# Master Job Cache\nmaster_job_cache: mysql" >> /etc/salt/master

重启Salt Master, 以使配置生效:

service salt-master restart

测试

对主机执行test.ping:

salt '*' test.ping -v

输出结果:

Executing job with jid 20141120060202308159
-------------------------------------------minion-01.example.com:True

查询MySQL jids表数据:

mysql salt -e 'select * from jids\G'

输出结果:

*************************** 1. row ***************************
jid: 20141120060202308159
load: {"tgt_type": "glob", "jid": "20141120060202308159", "cmd": "publish", "tgt": "*", "kwargs": {"show_timeout": false, "show_jid": false}, "ret": "", "user": "sudo_vagrant", "arg": [], "fun": "test.ping"}

查询MySQL salt_returns表数据:

mysql salt -e 'select * from salt_returns\G'

输出结果:

*************************** 1. row ***************************
fun: test.ping
jid: 20141120060202308159
return: true
id: minion-01.example.com
success: 1
full_ret: {"fun_args": [], "jid": "20141120060202308159", "return": true, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2014-11-20T06:02:02.533850", "fun": "test.ping", "id": "minion-01.example.com"}
alter_time: 2014-11-20 06:02:02

Job执行结果已经按照之前的配置存储到了MySQL中, 达到预期效果

转载于:https://blog.51cto.com/7870873/1640236

Salt Master外部Job Cache配置相关推荐

  1. OpenStack环境搭建(二:Fuel Master的安装及配置)

    实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...

  2. nginx cache 配置

    nginx cache 配置 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它 可以支持任意URL链接, ...

  3. 瑞萨e2studio(15)----外部中断定时器配置输入捕获测量频率

    瑞萨e2studio.15--外部中断&定时器配置输入捕获测量频率 概述 视频教学 csdn课程 完整代码下载 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板 ...

  4. 【MM配置】Master Data 主数据的配置

    物料主数据中的设定主要包括一下几个部分: ⭐ Configuring the Material Master ⭐ Field Selection ⭐ Basic Setting ⭐ Setting f ...

  5. docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置

    在上一篇中<在CentOS7中使用Docker安装MySql>中介绍了怎样在Docker中安装Mysql,但存在两个问题: 1.用户密码和字符集等的设置,需要安装完MySql后,进入到My ...

  6. nginx proxy cache配置参数解读

    为什么80%的码农都做不了架构师?>>>    序 本文主要解析一下nginx ngx_http_proxy_module中的cache相关配置参数. proxy_cache 名称 ...

  7. Spring Cache 配置及一些问题的解决

    配置 1. applicationContext.xml <beans xmlns="http://www.springframework.org/schema/beans" ...

  8. mysql master host_MySQL5.5.28配置master-maser复制,master-host等参数不用了

    今天在测试环境中配置两个MySQL的复制,按照以前的方法,修改my.cnf之后启动,报错: [root@XXXX ~]# /etc/init.d/mysql restart ERROR! MySQL ...

  9. django 缓存cache配置注意事项

    最近在个人项目优化的过程中,发现自己重新踩了一下缓存配置的坑,转念一想索性在博客上留存一份资料以备日后随时反查,也给各位正在学习或使用django的朋友提个醒. 配置缓存CACHES 关于配置这块,目 ...

最新文章

  1. mxnet 显存配置,cpu过高配置
  2. mat opencv 修改roi_OpenCV中如何提取不规则ROI区域
  3. visual studio 重命名项目和程序集名称
  4. 2022-03-17
  5. MySQL 常用SQL优化
  6. 小米答题题库_拼多多果园答题题库74(每日更新)
  7. 2021年Q2服饰行业季度洞察报告
  8. 胡斌、张礼礤会摧毁我们的信任
  9. Android Studio中删除所有的断点
  10. JavaWeb那些事儿(二)--java中类、成员和方法的访问权限
  11. java day07【Scanner类、Random类、ArrayList 类】
  12. Elsevier(爱思唯尔)论文模板下载地址及说明
  13. RS232 DB9 公头 母头 串口引脚定义
  14. pom.xml 注释
  15. ERD-ONLINE 免费在线数据库建模工具
  16. VTK(The Visualization Toolkit)加载stl模型
  17. 什么是你最关键的人脉
  18. MTK平台产线生产标记位功能
  19. 201671010412 郭佳 英文文本统计分析
  20. 开发一个完整的iOS直播app必须技能

热门文章

  1. 模拟分发扑克牌(python实现)
  2. 系列(六)—Linux命令
  3. JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
  4. 前端开发的正确姿势——各种文件的目录结构规划及引用
  5. CSUOJ-1980 不堪重负的数(区间dp)
  6. Apache Kylin的核心概念
  7. bzoj1588营业额统计
  8. 快速学习AJAX之三 Ajax实现登陆
  9. Java基础教程——Set
  10. cocos2d-x android 入门