zzl001 发表于 2018-7-31 12:03:41

运维自动化之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@'%'>  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(返回)