1、前期调研

0、环境

salt 2019

python3.6  很重要

[root@IP ~]# salt-call --versions-report
Salt Version:
Salt: 2019.2.0 Dependency Versions:
cffi: Not Installed
cherrypy: 5.6.0
dateutil: Not Installed
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
ioflo: Not Installed
Jinja2: 2.8.1
libgit2: Not Installed
libnacl: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.5.6
mysql-python: 1.4.6
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: Not Installed
Python: 3.6.8 (default, Aug 7 2019, 17:28:10)
python-gnupg: Not Installed
PyYAML: 3.11
PyZMQ: 15.3.0
RAET: Not Installed
smmap: Not Installed
timelib: Not Installed
Tornado: 4.4.2
ZMQ: 4.1.4 System Versions:
dist: centos 7.3.1611 Core
locale: UTF-8
machine: x86_64
release: 3.10.0-514.el7.x86_64
system: Linux
version: CentOS Linux 7.3.1611 Core [root@IP ~]#
[root@IP ~]# find / -name salt
/run/salt
/etc/logrotate.d/salt
/etc/salt
/var/lib/mysql/salt
/var/log/salt
/var/cache/salt
/usr/bin/salt
/usr/lib/python3.6/site-packages/salt
/home/sre/soms/media/salt
/srv/salt

1、相关文档

官方文档 https://docs.saltstack.com/en/latest/ref/returners/index.html#full-list-of-returners

对应中文翻译

Salt Returners-作业结果数据返回器的使用与定制开发方法  https://blog.csdn.net/watermelonbig/article/details/90634759

【SaltStack官方版】—— returners——返回器  https://www.cnblogs.com/zuoyang/p/9220647.html

--return mysql的3种方法

https://www.cnblogs.com/nmap/p/6219816.html

https://blog.51cto.com/q2012/2062953

https://www.jianshu.com/p/a655447ad7c6

https://www.jianshu.com/p/2b013833ab39

https://blog.csdn.net/qq_42303254/article/details/88998744

某些error问题解决:

https://blog.51cto.com/molewan/1899474

升级版本解决此问题:http://www.dongcoder.com/detail-656041.html

2、jobid问题

1、异步执行,maseter返回jobid,前端何时,去查看该jobid的结果。此时如果有个回调函数就更好了。

2、研究salt发现 --return 模块,可以自动把异步执行的结果写入数据库,这样就不需要查询了,直接从数据库里面取值即可。

参考

https://www.cnblogs.com/evilliu/articles/6137336.html

1、centos7.3,salt2019,python3.6下的安装

1、安装MySQL

安装参考  https://www.cnblogs.com/venicid/p/11956731.html

成功

2、安装MySQLdb模块

安装参考 https://www.cnblogs.com/venicid/p/11950519.html

对于,该环境来说。此处必须指定位置安装,MySQLdb与salt包位置,一样,

详情请见  https://www.cnblogs.com/venicid/p/11958498.html

[root@IP salt]# pip3 install --target=/usr/lib/python3.6/site-packages/ mysql-client

成功

2、建立数据库表

官网:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

建立三个表

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;

授权

mysql> grant all on salt.* to salt@"%" identified by "XXXXX";
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.11 sec)

成功

3、master配置

[root@IP ~]# vim /etc/salt/master

mysql.host: '192.168.23.21'
mysql.user: 'salt'
mysql.pass: 'XXXXX'
mysql.db: 'salt'
mysql.port: 3306
return: mysql
master_job_cache: mysql

重启master

[root@IP ~]# systemctl restart salt-master

4、执行salt命令,查看

先查看下

同步执行下

[root@IP ~]# salt "192.168.23.21" test.ping
192.168.23.21:
True

异步执行下,5个都存在

[root@IP ~]# salt --async  \*  cmd.run "hostname -I"
Executed command with job ID: 20191129210622671777

5、安装ERROR解决

https://www.cnblogs.com/venicid/p/11958498.html

https://www.cnblogs.com/venicid/p/11957562.html

04_Returners组件:返回jobid的结果到mysql的更多相关文章

  1. 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库

    需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...

  2. Redis整合MySQL和MyCAT分库组件(来源是我的新书)

    MyCAT是一个开源的分布式数据库组件,在项目里,一般用这个组件实现针对数据库的分库分表功能,从而提升对数据表,尤其是大数据库表的访问性能.而且在实际项目里,MyCAT分库分表组件一般会和MySQL以 ...

  3. MySQL时间差返回月个数

    select PERIOD_DIFF(date_format(now(),'%Y%m'),date_format('2010-11-30','%Y%m')) 1. MySQL 为日期增加一个时间间隔: ...

  4. [MySQL Reference Manual] 18 复制

    18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...

  5. 冰冻三尺非一日之寒-mysql(orm/sqlalchemy)

    第十二章  mysql ORM介绍    2.sqlalchemy基本使用 ORM介绍: orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似pyt ...

  6. mysql存储过程详解

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  7. windows系统下安装MySQL

    可以运行在本地windows版本的MySQL数据库程 序自从3.21版以后已经可以从MySQL AB公司获得,而且 MYSQL每日的下载百分比非常大.这部分描述在windows上安装MySQL的过程. ...

  8. Mysql的存储过程(以Mysql为例进行讲解)

       我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 在数据库中,用户通过指定存 ...

  9. mysql 存储过程详解 存储过程

    mysql存储过程详解 1.      存储过程简介         我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...

随机推荐

  1. MySQL和Oracle的区别与不同

    一.mysql与Oracle的相同点: 1.都是关系型数据库管理系统(MySQL开放源码) 2.都是目前很流行的数据库(Oracle以分布式为核心): 二.MySQL.Oracle各自特点: 1.Or ...

  2. golang中switch用法细节

    1. switch穿透-fallthrough, 如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透,默认只穿透一层 2. Type Switch: s ...

  3. 导入别的项目到我的eclipse上出现红色感叹号问题

        项目红色感叹号问题问题 一般我们在导入别的项目到我的eclipse上面会发现,项目上面有红色的错误     原因 因为我电脑上的 jdk版本和别人电脑jdk版本不一样,那么对于的jre版本也不 ...

  4. 关于spring中配置文件路径的那些事儿

    在项目中我们经常会需要读一些配置文件来获取配置信息,然而对于这些配置文件在项目中存放的位置以及获取这些配置文件的存放路径却经常搞不清楚,自己研究了一下,记录下来以备后用. 测试代码如下 package ...

  5. .netcore 上传

    BS 上传文件,就是 <input type="file" name="file" />  这个选择文件之后,浏览器保存了文件路径,上传的时候,把这 ...

  6. centos系统基本操作命令

    系统相关命令 查看系统版本: cat  /etc/centos-release 系统更新: yum  update 用户相关命令 增加用户: useradd  [用户名] 设置密码:password  ...

  7. 分享一张理解数据库inner join,left join,right join,full join的图

  8. IDEA安装及默认配置习惯配置(一)

    最新新转战IDEA,每次安装完需要做一些操作习惯的设置,在这里记录一下,下次安装可以快速上手用. 第一步,JAVA安装 JDK官方下载地址:https://www.oracle.com 下载JDK时根 ...

  9. 如何在 vue 2.0+ 中引入全局的stylus文件,且能正常

    由于stylus在引用时,不能像一般的css文件直接在main.js中引用,就算引用了也会只能使用转换后的css,不能使用里面的函数,方法等,原因可能是:在这里引入会被直接编译成css,不能在别的模板 ...

  10. 定义Java类实现字节流转字符流

    package com.buaa.comparable; import java.io.BufferedReader;import java.io.File;import java.io.FileIn ...