Returners:
默认是标准输出到屏幕
当然可以输出到其他目标,如:
mysql
redis
这里说一下将Returners写入到Mysql
方法一:
在每个minion端安装软件包MySQL-python ,让每个minion主机自己把其返回的信息写入数据库
在每个minion端的主机主配置文件中添加如下内容:
tail /etc/salt/minion
mysql.host: ‘192.168.124.1‘ # Myslq Server 的IP地址
mysql.user: ‘salt‘
mysql.pass: ‘salt‘
mysql.db: ‘salt‘
mysql.port: 3306
重启 salt-minion 服务
在mysql server中配置salt相关的数据库和表
MariaDB [(none)]>CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]>use salt;
MariaDB [salt]>CREATE TABLE `jids` (
`jid` varchar(255) NOT NULL,
`load` mediumtext NOT NULL,
UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MariaDB [salt]>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;
MariaDB [salt]>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;
MariaDB [salt]>grant all on salt.* to [email protected]‘%‘ identified by ‘salt‘; # 授权 salt 用户
MariaDB [salt]>exit;
验证:
在master端执行:
salt ‘*‘ test.ping --return mysql
之后在 Mysql Server 上查看表 salt_reture
MariaDB [(none)]> select * from salt.salt_returns\G
正常情况下会显示有内容
方法二:
只在master端安装软件包:MySQL-phyon ;在master端的主配置文件配置如下内容:
tail /etc/salt/master
mysql.host: ‘192.168.124.1‘ # Myslq Server 的IP地址
mysql.user: ‘salt‘
mysql.pass: ‘salt‘
mysql.db: ‘salt‘
mysql.port: 3306
master_job_cache: mysql
# 以上是设置返回值有matser写入mysql数据库内,
重启 salt-master 服务
测试方法:
1. 先把原来的表内容清空
MariaDB [(none)]> truncate table salt.salt_returns; # 清空表内容
MariaDB [(none)]> select * from salt.salt_returns\G # 确认表内无内容
2. 在master端直接正常执行
[[email protected] stats]# salt ‘*‘ cmd.run ‘df -h‘
3. 再在 Mysql Server 中查看表内容
MariaDB [(none)]> select * from salt.salt_returns\G