天天看點

salt return mysql_mysql中儲存salt傳回結果

在mysql中儲存salt傳回結果 參考文檔 http://docs.saltstack.cn/topics/jobs/external_cache.html

master端向minion端推送之後,minion端會儲存推送資訊24小時,為了将資訊長久儲存,可以選擇将資料存儲到資料庫中,進而長久儲存.使資料存儲到資料庫中有兩種實作方式

方法一:

salt return mysql_mysql中儲存salt傳回結果

(1)安裝mysql(server1)

yum install -y mysql-server

(2)登陸資料庫并對salt使用者授權

grant all on salt.* to [email protected]'172.25.1.%' identified by 'redhat';

(3)在要備份的minion端(sevrer2)安裝MySQL-python

yum install MySQL-python -y

(4)配置server2的minion檔案

[[email protected] ~]# vim /etc/salt/minion

810 #return:

811 # - mysql

812 # - hipchat

813 # - slack

814 mysql.host: '172.25.1.1' # mysql資料庫所在主機

815 mysql.user: 'salt' # 登陸資料庫的使用者

816 mysql.pass: 'redhat' # salt使用者密碼

817 mysql.db: 'salt' # 存放推送資訊的資料庫

818 mysql.port: 3306

(5)在server1端的mysql資料庫中導入資料

mysql < test.sql

[[email protected] ~]# 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 return mysql_mysql中儲存salt傳回結果

(1)在server1端安裝MySQL-python

yum install MySQL-python

(2)在資料庫中對本地localhost使用者授權(資料庫mysql饑餓python子產品均在server1端,是以隻用對localhost使用者授權就行)

grant all on salt.* to [email protected]'localhost' identified by 'redhat';

(3)編輯server1端的master檔案

[[email protected] ~]# vim /etc/salt/master

1058 master_job_cache: mysql

1059 mysql.host: 'localhost'

1060 mysql.user: 'salt'

1061 mysql.pass: 'redhat'

1062 mysql.db: 'salt'

1063 mysql.port: 3306

(4)在server1上向server2或3或4上推送salt server3 cmd.run ‘df -h’

[[email protected] ~]# salt server3 cmd.run 'df -h'

server3:

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root 14G 1.1G 12G 8% /

tmpfs 246M 16K 246M 1% /dev/shm

/dev/vda1 485M 33M 427M 8% /boot

mysql> use salt;

mysql> select * from salt_returns\G;

*************************** 5. row ***************************

fun: cmd.run

jid: 20181113200153946345

return: "Filesystem Size Used Avail Use% Mounted on\n/dev/mapper/VolGroup-lv_root 14G 1.1G 12G 8% /\ntmpfs 246M 16K 246M 1% /dev/shm\n/dev/vda1 485M 33M 427M 8% /boot"

id: server3

success: 1

full_ret: {"fun_args": ["df -h"], "jid": "20181113200153946345", "return": "Filesystem Size Used Avail Use% Mounted on\n/dev/mapper/VolGroup-lv_root 14G 1.1G 12G 8% /\ntmpfs 246M 16K 246M 1% /dev/shm\n/dev/vda1 485M 33M 427M 8% /boot", "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2018-11-13T12:01:54.013976", "fun": "cmd.run", "id": "server3"}

alter_time: 2018-11-13 20:01:54