saltstack之(十一)扩展组件salt-returners

场景:每次执行salt任务后,将返回结果存入到数据库,可以做任务跟踪以及历史查看。

1.在node1上安装mysql数据库并启动设置root密码。
[[email protected] ~]# yum -y install mysql-server MySQL-python
[[email protected] ~]# service mysqld start
[[email protected] ~]# mysqladmin -uroot password 123456

2.数据库建库建表语句。

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;
CREATE INDEX jid ON jids(jid) USING BTREE;

--
-- 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;

--
-- Table structure for table `salt_events`
--

DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.在node2上编辑/etc/salt/minion文件,并重新启动salt-minion服务,文件修改如下:
[[email protected] salt]# tail -n 5 /etc/salt/minion
mysql.host: ‘192.168.3.1‘
mysql.user: ‘root‘
mysql.pass: ‘123456‘
mysql.db: ‘salt‘
mysql.port: 3306
[[email protected] ~]# service salt-minion restart

4.在node1上远程执行命令并指定返回数据写入MySQL,登陆并查看数据库内容。
[[email protected] ~]# salt ‘node2.xkops.com‘ test.ping --return mysql

mysql>select * from salt.salt_events;

时间: 2024-08-12 05:01:24

saltstack之(十一)扩展组件salt-returners的相关文章

saltstack结合Elasticsearch来做salt运行结果展现

salt尽管好用可是机器管理的越来越多,通过cli的结果输出方式查看运行结果越来越多不能满足我的需求.并且作为一个推动运维自己主动化的攻城狮,使用这样的人眼查看运行结果的方式简直土到掉渣.尽管别人看起来逼格非常高.但谁累谁知道...因为以上原因,给各位推荐一种逼格更高的结果查看方式: salt returners 先来看一下官方结构图: Send data returned by Salt Minions to another system, such as a database. Return

saltstack(十一)runners

这一篇,总结一下runner的用法. runner是个啥呢,runner的写法和execution module的写法差不多. 不同的是,execution module需要同步到minions上,然后在minions上面执行, 而runner则,在master上直接用salt-run这个命令就可以调用了,而不需要同步到minions上面. 既然,runner和execution module执行场景不同,那么显然他们操作的对象也不一样. 一个exection module同步到一个minion

Salt Returners

默认情况下,发送到Salt Minions端的命令的返回值直接返回给Salt Master.使用Salt Returners,可以将返回数据存储到其他外部数据存储用于以后的分析和归档. Returners从Salt Minion端拉去配置数据,只配置一次,通常是在启动时间 Retuner interface允许返回数据被发送到任何可以接收数据的系统,例如Redis,MongoDB,MySQL等 在/usr/lib/python2.6/site-packages/salt/returners目录下

saltstack常用模块及组件备忘

Saltstack分为主控端和被控端.主控端的salt服务启动:systemctl start salt-master,被控端的服务启动:systemctl start salt-minion1.Saltstack的防火墙配置主控端防火墙允许TCP4505和4506端口,被控端不需要配置.原理是被控端直接与主控端的zeromq建立长链接,接受广播到的任务信息并执行. iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506

ExtJs4.2应用:使用ExtJs扩展组件searchfield实现数据搜索功能

ExtJs4.2应用:使用ExtJs扩展组件searchfield 实现数据搜索功能 1.引入searchfield组件 在Ext目录下放入ux目录将searchfield组件放入ux目录下的form文件下,如图所示: 2.在对应Js文件中引入searchfield组件 dockedItems: [{ dock: 'top', /**在顶部显示*/ xtype: 'toolbar', /**以工具栏形式展示*/ items: { width: "25%", fieldLabel: 'L

【Android】10.1 扩展组件库和其他视图--本章示例主界面

分类:C#.Android.VS2015: 创建日期:2016-02-18 1.主界面运行截图 2.MainActivity.cs文件中对应的代码 chItems.Add(new Chapter() { ChapterName = "第10章 扩展组件库和其他视图", ChapterItems = new ChItem[] { new ChItem { type=typeof(ch1001Main), Title="例10-1 网格视图基本用法", Desc = &

MEF(Managed Extensibility Framework)使用全部扩展组件

MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是实现接口)的组件的Parts(类.方法和属性可看作是Part)标记为Export特性,再把这些组件放到与可执行程序同目录的Extensions文件夹中,最后通过把Part标记为Import来引用这些组件,从而为我们创建可扩展组件提供了方便. 以球员踢球为例,体验MEF的工作原理和便捷之处. ● He

MEF(Managed Extensibility Framework)有选择性地使用扩展组件

在"MEF(Managed Extensibility Framework)使用全部扩展组件"中,客户端应用程序调用了所有的扩展组件,而且如果有新的扩展组件加入,必须先关闭程序,再重新启动才可以调用所有组件. 本篇体验使用MEF的ExportMetadata特性,有选择性地使用某些扩展组件,使用Lazy<>,让客户端程序延迟动态加载组件,即使不关闭应用程序,也能调用所有组件. ● StudentMEF.Lib, 类库,包含接口IStudent.cs ● StudentMEF

EasyUI扩展组件

EasyUI本身自带一个非常隐蔽但非常强大的功能——扩展自定义组件.其功能和微软的用户组件功能一模一样,但EasyUI的好用多了.举例:一个项目中多个地方需要部门下拉框组件,我们可以这样写: <html> <head> <title>测试扩展组件</title> <script src="http://code.jquery.com/jquery-latest.js"></script> <script sr