存储SaltStack推送信息

在server1(master)端向minion端推送之后,minion端会保存推送信息24小时,可是为了日后便于查看推送的信息,我们应该将这些信息长期存储起来,而存放在数据库中是个不错的选择,现在我们用两种方法来存放,后者较为常用:
server1为master
server2,3,4为minion

方法一:
1.在server1(master)上安装数据库

yum install -y mysql-server

2.登陆数据库并对salt用户授权

grant all on salt.* to salt@'172.25.1.%' identified by 'jay';

3.在要备份的minion端(sevrer2)安装MySQL-python

yum install MySQL-python -y 

4.配置server2的minion文件

810 #return:
811 #  - mysql
812 #  - hipchat
813 #  - slack
814 mysql.host: '172.25.1.1'        # mysql数据库所在主机(master)
815 mysql.user: 'salt'              # 登陆数据库的用户
816 mysql.pass: 'jay'               # salt用户密码
817 mysql.db: 'salt'                # 存放推送信息的数据库
818 mysql.port: 3306

重新打开minion:/etc/init.d/salt-minion restart
5.在server1端的mysql数据库中导入数据:
mysql < test.sql

vim test.sql
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;

6.在sever1端向server2推送,在数据库的salt数据库salt_returns表中查看

salt 'server2' test.ping --return mysql    # 推送ping的命令并将结果返回mysql数据库

这里写图片描述

方法二:
所有的操作均在server1(master)中操作,mysql-python也安装在server1上
1.在server1端安装MySQL-python

yum install MySQL-python

2.在数据库中对本地localhost用户授权(数据库mysql饥饿python模块均在server1端,所以只用对localhost用户授权就行)

grant all on salt.* to salt@'localhost' identified by 'jay';

3.编辑server1端的master文件

#return: mysql

master_job_cache: mysql
mysql.host: 'localhost'
mysql.user: 'salt'
mysql.pass: 'jay'
mysql.db: 'salt'
mysql.port: 3306

4.在server1上向server2或3或4上推送salt server3 cmd.run ‘df -h’
这里写图片描述
5.在数据库中查看
这里写图片描述

猜你喜欢

转载自blog.csdn.net/jay_youth/article/details/81809266
今日推荐