Salt返回接收器(returner)允许把minion的响应保存在各种数据存储或不同的位置,甚至把响应内容显示在命令行。Returner可以用来扩展Salt,和新的、定制的接口和支持新的数据库进行通信。本例用mysql存储salt返回值
操作如下:
[root@redis01-jp ~]# yum -y install mysql-connector-python
[root@redis01-jp ~]# yum -y install MySQL-python27
[root@redis01-jp ~]# yum -y install mysql-server
[root@redis01-jp ~]# /etc/init.d/mysqld start
[root@redis01-jp ~]# mysql
CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
USE `salt`;
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;
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;
DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` varchar(1024) NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
grant all on salt.* to salt@'172.31.%' identified by 'salt';
flush privileges ;
exit
[root@redis01-jp ~]# vim /etc/salt/master
#return: mysql
master_job_cache: mysql
mysql.host: '172.31.24.139'
mysql.user: 'salt'
mysql.pass: 'salt'
mysql.db: 'salt'
mysql.port: 3306
[root@redis01-jp ~]# /etc/init.d/salt-master restart
[root@redis01-jp ~]# salt '*' saltutil.refresh_pillar
[root@redis01-jp ~]# salt '*' test.ping
[root@redis01-jp ~]# mysql
use salt;
select * from salt_returns;
exit
[root@redis01-jp ~]#