4321oiuy 发表于 2016-9-18 10:50:54

运维自动化之Saltstack(四)Returners(返回)

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)]>usesalt;
MariaDB >CREATE TABLE `jids` (
`jid` varchar(255) NOT NULL,
`load` mediumtext NOT NULL,
UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MariaDB >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 >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 >grant all on salt.* to salt@'%' identified by 'salt';   # 授权 salt 用户
MariaDB >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端直接正常执行
# salt '*' cmd.run 'df -h'

3. 再在 Mysql Server 中查看表内容
MariaDB [(none)]> select * from salt.salt_returns\G

页: [1]
查看完整版本: 运维自动化之Saltstack(四)Returners(返回)