saltstack 将执行结果保存到mysql中

1. 安装salt(安装过程不再赘述)

2. 安装mysql(安装过程不再赘述)

3. 确保salt-master机器可以连接mysql(安装pymysql)

4. 建库

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;

5. 授权

grant all privileges on salt.* to salt@'localhost' identified by "123456";

 

6. 配置salt-master

vim    /etc/salt/master

#return: mysql

master_job_cache: mysql
mysql.host: '192.168.9.176'
mysql.user: 'salt'
mysql.pass: 'quxy120012'
mysql.db: 'salt'
mysql.port: 3306

7. 重启salt-master

8. 测试

例如:salt  "*"   cmd.run    'free  -m'

9 . 查看数据库

select  *  from salt_returns;

 

 

saltstack异步执行命令

salt --async  '10.10.10.10'  cmd.run "echo  test11  >> /tmp/test.sh"

Executed command with job ID: 20221109072954917684

 

通过jobid获取执行结果

salt-run jobs.lookup_jid  20221109072954917684  

 

saltstack 的job管理

参考文档

https://blog.csdn.net/die8252/article/details/102307711 

 

posted @ 2021-10-11 17:34  羊脂玉净瓶  阅读(41)  评论(0)    收藏  举报