SaltStack远程执行-返回MySQL

  上一篇: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)

1
salt '*' cmd.run 'yum -y install MySQL-python'

  也可以使用命令

1
salt '*' state.single pkg.installed name=MySQL-python

  在master上面安装mariadb

1
yum -y install mariadb-server

  进入mysql创建数据库并且使用库

1
2
3
CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;
1
use salt

  创建表

1
2
3
4
5
6
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;

  

1
2
3
4
5
6
7
8
9
10
11
12
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;

  

1
2
3
4
5
6
7
8
9
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;

  三张表

 

  授权

1
grant all on salt.* to salt@'%' identified by 'salt@pwd';

  修改minion配置文件/etc/salt/minion添加以下几行

1
2
3
4
5
mysql.host: '192.168.56.11'
mysql.user: 'salt'
mysql.pass: 'salt@pwd'
mysql.db: 'salt'
mysql.port: 3306

  重启minion

1
systemctl restart salt-minion

  测试

1
salt '*' test.ping --return mysql

  查看数据表

 

  可以通过master收集

  修改master配置文件

1
2
3
4
5
6
master_job_cache: mysql
mysql.host: '192.168.56.11'
mysql.user: 'salt'
mysql.pass: 'salt@pwd'
mysql.db: 'salt'
mysql.port: 3306

  重启

1
systemctl restart salt-master

  这个时候不使用return mysql就可以输出到mysql 在minion上面不需要安装MySQL-python包    

  没成功

  加参数-v显示jid

 

  排错:

  安装mariadb-server及MySQL-python时候报错

  原因:之前使用rpm包安装了MySQL5.7

  解决办法:卸载mysql-community-common

1
yum remove mysql-community-common

  

   安装了mariadb以后无法启动报错为

  原因:和之前rpm包安装的MySQL有冲突

  解决办法:删除原所有数据文件,默认文件夹为/var/lib/mysql 可以在配置文件/etc/my.cnf下面查看到默认的数据文件放置位置

 

  下一篇:SaltStack之Salt-ssh

posted @   minseo  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示