千家信息网

SaltStack实战之远程执行-Returners

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,SaltStack实战之远程执行-Returners学习 SaltStackSaltStack实战之远程执行-Returners1. Returners列表2. 介绍mysql returner的用法
千家信息网最后更新 2025年11月06日SaltStack实战之远程执行-Returners

SaltStack实战之远程执行-Returners


学习 SaltStack



  • SaltStack实战之远程执行-Returners

    • 1. Returners列表

    • 2. 介绍mysql returner的用法

    • 2.1 安装pip和MySQLdb

    • 2.2 配置mysql数据库

    • 2.2 配置salt-master

    • 2.3 测试


1. Returners列表

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

returnersdescription
carbon_returnTake data from salt and "return" it into a carbon receiver
cassandra_cql_returnReturn data to a cassandra server
cassandra_returnReturn data to a Cassandra ColumnFamily
couchbase_returnSimple returner for Couchbase.
couchdb_returnS imple returner for CouchDB.
django_returnA returner that will infor a Django system that returns are available using Django's signal system.
elasticsearch_returnReturn data to an elasticsearch server for indexing.
etcd_returnReturn data to an etcd server or cluster
hipchat_returnReturn salt data via hipchat.
influxdb_returnReturn data to an influxdb server.
kafka_returnReturn data to a Kafka topic
localThe local returner is used to test the returner interface, it just prints the
local_cacheReturn data to local job cache
memcache_returnReturn data to a memcache server
mongo_future_returnReturn data to a mongodb server
mongo_returnReturn data to a mongodb server
multi_returnerRead/Write multiple returners
mysqlReturn data to a mysql server
nagios_returnReturn salt data to Nagios
odbcReturn data to an ODBC compliant server.
pgjsonbReturn data to a PostgreSQL server with json data stored in Pg's jsonb data type
postgresReturn data to a postgresql server
postgres_local_cacheUse a postgresql server for the master job cache.
pushover_returnerReturn salt data via pushover (http://www.pushover.net)
rawfile_jsonTake data from salt and "return" it into a raw file containing the json, with one line per event.
redis_returnReturn data to a redis server
sentry_returnSalt returner that reports execution results back to sentry.
slack_returnerReturn salt data via slack
sms_returnReturn data by SMS.
smtp_returnReturn salt data via email
splunkSend json response data to Splunk via the HTTP Event Collector
sqlite3_returnInsert minion return data into a sqlite3 database
syslog_returnReturn data to the host operating system's syslog facility
xmpp_returnReturn salt data via xmpp
zabbix_returnReturn 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 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;

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 se


数据 配置 数据库 实战 模块 服务 测试 命令 地址 官方 数据表 服务器 权限 结构 法因 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 虚拟机远程服务器管理 软件开发可以做到退休吗 检测当前网络安全证书 海淀区信息网络技术推广报价行情 服务器raid卡处于安全模式 如何运用网络技术赚钱 山东软件开发哪个城市好 上海三轴点胶软件开发 中国石化网络安全宣传周活动 dell霄龙服务器厂商电话多少 计算机网络安全三大要素包括 dbl数据库中的意思 涉外网络安全 数据库密码放在哪里安全 我的世界云服务器怎么玩手机版 竹山互联网软件开发品质保障 无线网络安全英文ppt 暗黑2重制怎么切换服务器 软件开发公司绩效考核方案 人脸识别的向量存数据库 内蒙古大数据网络技术开发建议 如何查看服务器的加密卡 ef6依赖注入多数据库 南通知法互联网科技公司 我的世界中加入服务器要钱吗 怀旧服服务器一天刷多少金币 idea导出数据库数据 数据库操作工程师面试题 校园宽带网络安全检查报告 数据库自动化框架
0