博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
授之以渔-运维平台Saltstack Web 管理一(Returnner篇)
阅读量:7118 次
发布时间:2019-06-28

本文共 3733 字,大约阅读时间需要 12 分钟。

接上篇,今天介绍下Returnner。

一,returnner介绍

1,默认情况下,发送给minion的命令执行结果将返回给salt-master。Saltstack Returnner的接口允许将结果发送给任意系统。

GitHub:

官网:

二,returnner模块列表

##三、 食用过程

思路:主要用returners来处理saltstack执行的返回信息,通过http接口,存入数据库

###1.retrurn_http(位置/srv/salt/_returners/)

#coding=utf8import jsonimport urllibimport urllib2import osclass Salt_post:    def __init__(self):        self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor())        urllib2.×××tall_opener(self.opener)    def salt_post(self,salt_report_id,salt_report_jid,salt_report_full_ret):        self.salt_report_id=salt_report_id        self.salt_report_jid=salt_report_jid        self.salt_report_full_ret=salt_report_full_ret        _str=urllib.urlencode({'salt_report_id':self.salt_report_id,'salt_report_jid':self.salt_report_jid,'salt_report_full_ret':self.salt_report_full_ret})        _response=urllib2.urlopen('http://veronica.youth.cn/cmdb/salt_returners/',_str)def __virtual__():    return 'return_redis'def returner(ret):    x=Salt_post()    x.salt_post(ret['id'],ret['jid'],json.dumps(ret))

Q:为什么选择http的方式?

A:因为returners需要在每个客户端上执行,如果使用常规的mysql或者redis方式,直接写入数据库,需要在每个机器上装python的mysql或者redis扩展,无疑增加劳动力。

Q:salt_report_id,salt_report_jid,salt_report_full_ret干什么用?

A:salt_report_id指服务器客户端名称,salt_report_jid指jid,salt_report_full_ret指完成的返回信息。每次'。)

models如下:

class Salt_hosts(models.Model):    class Meta:        verbose_name = 'Salt_host'        verbose_name_plural = verbose_name        ordering = ['salt_hosts_name']     salt_hosts_name = models.CharField("主机名称",max_length=45)              salt_hosts_last_jid = models.CharField("jid",max_length=25,blank=True)    salt_hosts_last_jid_time = models.CharField('最后jid时间',max_length=35,blank=True)    salt_hosts_last_success_status = models.CharField("执行状态",max_length=10,blank=True)    salt_hosts_last_models_success_count = models.CharField("模块执行成功",max_length=10,blank=True)    salt_hosts_last_models_fail_count = models.CharField("模块执行失败",max_length=10,blank=True)    salt_hosts_models_group = models.ForeignKey(Salt_models_group,verbose_name="执行模块组")    salt_hosts_model = models.CharField("执行模块",max_length=10,blank=True)    salt_change_at = models.DateTimeField('最后更改时间',auto_now=True)  class Salt_report(models.Model):    class Meta:        verbose_name = 'Salt_report'        verbose_name_plural = verbose_name     salt_report_fun = models.CharField("功能",max_length=25)    salt_report_fun_args = models.CharField("参数",max_length=100,blank=True,null=True)    salt_report_jid = models.CharField("jid",max_length=25)    salt_report_id = models.CharField("id",max_length=45)    salt_report_success = models.CharField("状态",max_length=10)    salt_report_full_ret = models.TextField('结果',blank=True,max_length=2000)     salt_report_time = models.CharField('执行时间',max_length=35)
Salt_report(salt_report_fun=salt_report_fun,                            salt_report_id=salt_report_id,                            salt_report_jid=salt_report_jid,                            salt_report_full_ret=salt_report_full_ret,                            salt_report_success=salt_report_success,                            salt_report_fun_args=salt_report_fun_args,                            salt_report_time=salt_report_time).save()Salt_hosts(salt_hosts_name=salt_report_id,                           salt_hosts_last_jid=salt_report_jid,                           salt_hosts_last_jid_time=salt_report_time,                           salt_hosts_last_success_status=salt_report_success,                           salt_hosts_last_models_success_count=success_count,                           salt_hosts_last_models_fail_count=fail_count).save()

###2.Salt_hosts(类似Forman的reports)

image.png

###2.Salt_repot(类似Forman的hosts)
image.png

image.png

image.png

转载于:https://blog.51cto.com/qdream/2409023

你可能感兴趣的文章
文件批量重命名
查看>>
工具类
查看>>
git 常用命令
查看>>
jdom学习读取XML文件
查看>>
解决DEDE防止图片撑破页面,文章内容中的图片自适应宽度
查看>>
最课程阶段大作业04:毫无用处的学生管理系统
查看>>
黄聪:ffmpeg基本用法(转)
查看>>
文件上传漏洞绕过技巧
查看>>
C#之Attribute(特性)
查看>>
五、Html表单标签
查看>>
Flash Recovery Area 的备份
查看>>
JVM基础(5)-垃圾回收机制
查看>>
python2day内容回顾
查看>>
悬崖边上的字节跳动
查看>>
注册表c++精华
查看>>
Laravel 自定义分页、可以调整、显示数目
查看>>
Cobbler自动部署主机系统
查看>>
原来TMD是背景颜色的原因,
查看>>
Unity3D_Util_加密
查看>>
Unity3D_Util_事件管理_例子 虚拟遥感
查看>>