SaltStack实战之远程执行-Returners

@(学习)[SaltStack]

  • SaltStack实战之远程执行-Returners

    • Returners列表
    • 介绍mysql returner的用法
    • 1 安装pip和MySQLdb
    • 2 配置mysql数据库
    • 2 配置salt-master
    • 3 测试

1. Returners列表

https://docs.saltstack.com/en/latest/ref/returners/all/index.html

returners description
carbon_return Take data from salt and “return” it into a carbon receiver
cassandra_cql_return Return data to a cassandra server
cassandra_return Return data to a Cassandra ColumnFamily
couchbase_return Simple returner for Couchbase.
couchdb_return S imple returner for CouchDB.
django_return A returner that will infor a Django system that returns are available using Django’s signal system.
elasticsearch_return Return data to an elasticsearch server for indexing.
etcd_return Return data to an etcd server or cluster
hipchat_return Return salt data via hipchat.
influxdb_return Return data to an influxdb server.
kafka_return Return data to a Kafka topic
local The local returner is used to test the returner interface, it just prints the
local_cache Return data to local job cache
memcache_return Return data to a memcache server
mongo_future_return Return data to a mongodb server
mongo_return Return data to a mongodb server
multi_returner Read/Write multiple returners
mysql Return data to a mysql server
nagios_return Return salt data to Nagios
odbc Return data to an ODBC compliant server.
pgjsonb Return data to a PostgreSQL server with json data stored in Pg’s jsonb data type
postgres Return data to a postgresql server
postgres_local_cache Use a postgresql server for the master job cache.
pushover_returner Return salt data via pushover (http://www.pushover.net)
rawfile_json Take data from salt and “return” it into a raw file containing the json, with one line per event.
redis_return Return data to a redis server
sentry_return Salt returner that reports execution results back to sentry.
slack_returner Return salt data via slack
sms_return Return data by SMS.
smtp_return Return salt data via email
splunk Send json response data to Splunk via the HTTP Event Collector
sqlite3_return Insert minion return data into a sqlite3 database
syslog_return Return data to the host operating system’s syslog facility
xmpp_return Return salt data via xmpp
zabbix_return Return salt data to Zabbix

2. 介绍mysql returner的用法

因mysql returner使用需要python MySQLdb模块,所以需要先安装MySQLdb模块。

2.1 安装pip和MySQLdb

在下列地址下载安装包。
https://pypi.python.org/pypi/setuptools
https://pypi.python.org/pypi/pip/

[root@salt-master111 tmp]# yum -y install python-devel mysql-devel
[root@salt-master111 tmp]# unzip setuptools-36.0.1.zip
[root@salt-master111 tmp]# cd setuptools-36.0.1
[root@salt-master111 tmp]# python setup.py install
[root@salt-master111 tmp]# cd ../
[root@salt-master111 tmp]# tar -zxvf pip-9.0.1.tar.gz
[root@salt-master111 tmp]# cd pip-9.0.1
[root@salt-master111 tmp]# python setup.py install
[root@salt-master111 tmp]# pip install mysql
[root@salt-master111 tmp]# python
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 

2.2 配置mysql数据库

使用官方的数据表结构,并给minion服务器相关权限。

CREATE DATABASE  `salt`DEFAULT CHARACTER SET utf8DEFAULT 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;grant all on salt.* to salt@"10.1.0.%" identified by "saltpass";

2.2 配置salt-master

/etc/salt/master

return: mysql
mysql.host: 'salt-host'
mysql.user: 'salt'
mysql.pass: 'saltpass'
mysql.db: 'salt'

重启master和minion服务

systemctl restart salt-master
systemctl restart salt-minion

2.3 测试

master端执行命令。

[root@salt-master111 ~]# salt 'salt-master111' test.ping --return mysql
salt-master111:True
[root@salt-master111 ~]# 

在数据库中查看,salt_returns是否有数据进来。

mysql> select * from salt_returns;
+-----------+----------------------+--------+----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| fun       | jid                  | return | id             | success | full_ret                                                                                                                                   | alter_time          |
+-----------+----------------------+--------+----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
| test.ping | 20170609172835506510 | true   | salt-master111 | 1       | {"fun_args": [], "jid": "20170609172835506510", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master111"} | 2017-06-09 17:28:35 |
| test.ping | 20170609172841714924 | true   | salt-master111 | 1       | {"fun_args": [], "jid": "20170609172841714924", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master111"} | 2017-06-09 17:28:41 |
| test.ping | 20170609173636297217 | true   | salt-master111 | 1       | {"fun_args": [], "jid": "20170609173636297217", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master111"} | 2017-06-09 17:36:36 |
| test.ping | 20170609173653113715 | true   | salt-master111 | 1       | {"fun_args": [], "jid": "20170609173653113715", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-master111"} | 2017-06-09 17:36:53 |
+-----------+----------------------+--------+----------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------+---------------------+
4 rows in set (0.00 sec)

SaltStack实战之远程执行-Returners相关推荐

  1. SaltStack实战之远程执行-Modules

    SaltStack实战之远程执行-Modules 学习 SaltStack SaltStack实战之远程执行-Modules 1. 官方模块链接 2. 常用模块 3. 禁用cmd模块方法 1. 官方模 ...

  2. saltstack实战2--远程执行之模块(Modules)

    本来转自http://www.cnblogs.com/MacoLee/p/5753640.html  版权归原作者所有 说明 salt '*' sys.list_modules #列出当前版本支持的模 ...

  3. 企业运维实战--自动化运维Saltstack(上)之saltstack的安装部署、远程执行、grains和pillar详解以及Jinja模板的使用

    企业运维实战--自动化运维Saltstack(上) 前言 一.Saltstack安装部署 二.sls文件远程执行 saltstack安装httpd并启动 saltstack源码编译安装nginx 启动 ...

  4. Remote Execution - SaltStack远程执行模块使用指南

    文章目录 Remote Execution - Salt远程执行模块 Salt Execution Modules Remote execution tutorial - 远程执行模块使用教程 开始管 ...

  5. saltstack(自动化运维工具)——介绍、安装、部署+远程执行

    一.saltstack简介 saltstack是一个配置管理系统,能够维护预定义状态的远程节点. saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据. saltstack是 ...

  6. SaltStack 安装、简单配置和远程执行

    1:安装 修改hosts文件,必须保证Master端和Minion端都有完整的FQDN名示例如下: vim /etc/hosts 192.168.31.101 node2 node2.crazylin ...

  7. salt远程执行python脚本_SaltStack与Python配合实现系统用户自动化管理

    背景需求: 随意业务的发展,服务器数据也是越来越多,开发人员,运维人员也是越来越多.这时候如果有大量的人需要登录到服务器的话,那么我们就很有必要对用户进行管理.传统的方式是登录到每台服务器创建一个用户 ...

  8. 自己动手实现远程执行功能

    在排查问题的过程中,想查看内存中的一些参数值,却又没有方法把这些值输出到界面或日志中,又或者定位到某个缓存数据有问题,但缺少缓存的统一管理界面,不得不重启服务才能清理这个缓存.类似的需求有一个共同的特 ...

  9. ssh远程执行多个命令

    shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: ...

最新文章

  1. 物流设计大赛优秀作品_独家!亲历全国大学生物流设计大赛,队员、老师、专家这样说...
  2. 为什么你投出去的简历,都石沉大海了?
  3. IIS6.0支持PHP设置
  4. 接口隔离原则_设计模式之七大设计原则(上)
  5. 反转!奥斯卡般演技的果小云水果店耍了全世界!
  6. 多张表数据导入到execl中
  7. gmail cid图片不显示_python爬虫:爬取男生喜欢的图片
  8. leetcode 941. 有效的山脉数组
  9. python论文摘要_python新玩法:用python进行文章摘要拿取,只需要一行代码
  10. 代下单、抢红包,“羊毛党”们如何薅垮上市公司?
  11. 3. static file process
  12. python大作业报告(爬虫 分析 可视化)_python第四次周末大作业
  13. OBS录制的avi能够被imageJ打开吗?
  14. 苏宁小店前7个月亏近3亿 张近东儿子将持有65%股权
  15. 【心得感想】谈谈工作效率及沟通
  16. 万字总结:金融市场基础知识
  17. web前端开发工程师的三种级别
  18. Ubuntu终端Terminator的安装与配置使用
  19. 使用Canvas + Path和“曲面细分”算法实现钢笔笔锋效果
  20. 计算机页面大小4k,4K分辨率到底是什么?简单告诉你

热门文章

  1. 剧本--反内卷委员会
  2. 开源库MusicPlayManager - 封装StarrySky音乐库
  3. 微信公众号新上线“快捷私信”功能 微信留言功能没有的号迎来转机
  4. Butterfly主题背景魔改
  5. RN仿微信通讯录列表
  6. 结束已经占用的端口号的进程
  7. 5G安全_核心网业务
  8. 计算机未检测到任何网络硬件,电脑提示windows没有检测到任何网络硬件怎么办...
  9. 明日之后mumu模拟器找不到服务器,MuMu模拟器玩明日之后常见问题汇总
  10. 猿代码浅谈Python|猿代码科技