操作前准备:
先安装依赖包:MySQL-python
[root@linux-node1 ~]# yum install MySQL-python -y
方法一:
所有Minion端的配置文件/etc/salt/minion在最后增加如下几行: mysql.host: '10.0.0.7' mysql.user: 'salt' mysql.pass: 'salt' mysql.db: 'salt' mysql.port: 3306 Use the following mysql database schema(创建数据库): 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; mysql> grant all on salt.* to salt@'%' identified by 'salt'; salt-minion配置文件添加一下内容到最后: [root@linux-node2 ~]# vim /etc/salt/minion mysql.host: '10.0.0.7' mysql.user: 'salt' mysql.pass: 'salt' mysql.db: 'salt' mysql.port: 3306 [root@linux-node2 ~]# /etc/init.d/salt-minion restart salt-master执行命令: [root@linux-node1 pillar]# salt '*' test.ping --return mysql mysql> select * from salt.salt_returns\G *************************** 1. row *************************** fun: test.ping jid: 20151123172044880830 return: true id: linux-node2.example.com success: 1 full_ret: {"fun_args": [], "jid": "20151123172044880830", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "linux-node2.example.com"} alter_time: 2015-11-23 17:20:45 1 row in set (0.00 sec)
第二种方法:
[root@linux-node1 pillar]# vim /etc/salt/master return: mysql mysql.host: '10.0.0.7' mysql.user: 'salt' mysql.pass: 'salt' mysql.db: 'salt' mysql.port: 3306 [root@linux-node1 pillar]# salt '*' test.ping #无需加--return mysql PS:Minion端的错误日志路径如下: [root@linux-node2 salt]# tail -f /var/log/salt/minion #log文件