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下面查看到默认的数据文件放置位置
分类:
高级构架师2018NEW
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!