设为首页 收藏本站
查看: 1648|回复: 0

[经验分享] 基于salt自带returners入库功能的部分修正

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-22 08:54:47 | 显示全部楼层 |阅读模式
  SaltStack自带将执行的命令及返回结果入库的功能,这里我使用的是mysql库。    环境:

            RHEL AS5.8 64位

            Mysql 5.5

            Salt 2014.7.0

    首先介绍官方的标准实现方式,在mysql中建立salt所使用的用户,然后建立salt库、保存执行命令相关信息的jids表和保存命令执行结果的salt_returns表。创建库及表的命令如下,这个salt官方给出的标准:

#########################################
本文出自Guibin的博客,由Guibin原创,转载请注明出处。
我会不定期对本博文进行修正。
#########################################

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;
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配置中增加如下内容,然后重启master使配置生效:
1
2
3
4
5
6
7
8
# vi /etc/salt/master
master_job_cache: mysql
#MySQL
mysql.host: '127.0.0.1'
mysql.user: 'micro'
mysql.pass: 'blog'
mysql.db: 'salt'
mysql.port: 3306



    这时执行个命令测试下:

1
# salt 'zhaogb-201' test.ping



    先查看库中执行命令的相关信息(我的mysql用户没有设置密码):

1
2
3
4
[iyunv@localhost returners]# mysql salt -e 'select * from jids\G'
*************************** 1. row ***************************
  jid: 20150121174905627607
load: {"tgt_type": "glob", "jid": "20150121174905627607", "cmd": "publish", "tgt": "zhaogb-201", "kwargs": {"show_timeout": false, "show_jid": false}, "ret": "", "user": "root", "arg": [], "fun": "test.ping"}



    再查看命令返回的结果:

1
2
3
4
5
6
7
8
9
[iyunv@localhost returners]# mysql salt -e 'select * from salt_returns\G'
*************************** 1. row ***************************
       fun: test.ping
       jid: 20150121174905627607
    return: true
        id: zhaogb-201
   success: 1
  full_ret: {"fun_args": [], "jid": "20150121174905627607", "return": true, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2015-01-21T17:49:09.942590", "fun": "test.ping", "id": "zhaogb-201"}
alter_time: 2015-01-21 17:49:09




    这是常规的使用,如果有些特殊需求,就需要进行二次开发,比如使用salt执行更新应用程序配置文件的时候,配置文件中有GB2312编码的字符,夹杂在return的字典中,与utf-8编码的字符混合,这时候入库就会失败,会报json.dumps遇到错误。

    我采用的解决方案是在salt源码的基础上进行修改。今天先写到这,以后将修改代码贴出来。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41276-1-1.html 上篇帖子: saltstack之virt模块创建虚拟机分析之四,创建虚拟机 下篇帖子: 初识saltstack之Quick Install
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表