聊聊returner(一)

最近在看returners,其实就是个返回模块。咱们通常执行命令的时候,结果会打印在屏幕上,returner就是把结果重定向其余地方,好比文件、数据库、nosql等等。css

saltstack有不少自带的returners模块,好比redis,mysql,sqlite3等等。我这里以mysql为例子。html

须要MySQLdb python模块和mysql server。
python

首先须要配置数据库。saltstack源码里有写明怎么操做mysql

CREATE DATABASE  `salt`redis

      DEFAULT CHARACTER SET utf8sql

      DEFAULT COLLATE utf8_general_ci;数据库

USE `salt`;架构

DROP TABLE IF EXISTS `jids`;
app

    CREATE TABLE `jids` (nosql

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

授予权限。

grant all privileges on salt.* to salt@'192.168.110.%' identified by 'salt';


配置minion

mysql.conf内容以下

mysql.host: '192.168.110.132'

mysql.user: 'salt'

mysql.pass: 'salt'

mysql.db: 'salt'

mysql.port: 3306

salt-cp '*' mysql.conf /opt/app/salt/etc/minion.d/mysql.conf

salt '*' cmd.run '/opt/app/salt/admin/salt-minion restart'

执行前

wKioL1PZ393zntLfAABEtio8Vek307.jpg

如今使用salt操做下

salt '*' test.ping --return mysql

wKioL1PZ4IzT-97GAAIC9CQ4sbk072.jpg

有两条记录。

由于这里只有两台机器。如图

wKiom1PZ37Tgam4HAABmgvO744o954.jpg


这样就能够方便之后统计数据,统计哪些没有成功,哪些成功。


可是呢,有个问题,就是使用系统自带的returner,须要修改配置文件,重启minion。若是你已经部署线上使用了,代价挺大的。


那么有什么方法能够不用修改配置,你要知道saltstack很是灵活,只有你想不到的,没有salt办不到的。前面event文章里提到过,event能够用来自定义returners。

关于结合event自定义returner能够参考下面的文章,这里再也不叙述。


可是呢,又有个问题,以上的returners适合于master-minion的小架构。若是salt架构比较大,使用到了master-syndic-minion架构,master和minion是不能通讯的,此时咋办。

这个时候仍是要结合event来处理,在master-syndic之间写个c/s结构的程序。

这个下篇文章再聊,先写到这里。


参考文章:

http://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

http://www.saltstack.cn/projects/cssug-kb/wiki/Saltstack_master_retuner_over_event_system

相关文章
相关标签/搜索