上一篇:SaltStack远程执行-模块
参考官方文档:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html#module-salt.returners.mysql
Salt执行的返回是由minion返回的,是由minion直接写在数据库或者其他里面的
在minion上面安装MySQL-python (salt不支持交互所以需要yum安装是时候加参数y)
salt '*' cmd.run 'yum -y install MySQL-python'
也可以使用命令
salt '*' state.single pkg.installed name=MySQL-python
在master上面安装mariadb
yum -y install mariadb-server
进入mysql创建数据库并且使用库
CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
use salt
创建表
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;
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;
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;
三张表
授权
grant all on salt.* to salt@'%' identified by 'salt@pwd';
修改minion配置文件/etc/salt/minion添加以下几行
mysql.host: '192.168.56.11'
mysql.user: 'salt'
mysql.pass: 'salt@pwd'
mysql.db: 'salt'
mysql.port: 3306
重启minion
systemctl restart salt-minion
测试
salt '*' test.ping --return mysql
查看数据表
可以通过master收集
修改master配置文件
master_job_cache: mysql
mysql.host: '192.168.56.11'
mysql.user: 'salt'
mysql.pass: 'salt@pwd'
mysql.db: 'salt'
mysql.port: 3306
重启
systemctl restart salt-master
这个时候不使用return mysql就可以输出到mysql 在minion上面不需要安装MySQL-python包
没成功
加参数-v显示jid
排错:
安装mariadb-server及MySQL-python时候报错
原因:之前使用rpm包安装了MySQL5.7
解决办法:卸载mysql-community-common
yum remove mysql-community-common
安装了mariadb以后无法启动报错为
原因:和之前rpm包安装的MySQL有冲突
解决办法:删除原所有数据文件,默认文件夹为/var/lib/mysql 可以在配置文件/etc/my.cnf下面查看到默认的数据文件放置位置