SaltStack实战之远程执行-Returners
admin
2023-05-18 09:41:40
0

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


相关内容

热门资讯

浙江宣传评文艺圈“塌房”:人品... 近几年来,文艺圈人品“塌房”事件屡有发生,从言行失范、私德有亏到违法犯罪,当创作者的德行有了污点,其...
伊朗看到了美国的3个软肋 全世界现在哭笑不得。刚扬言要狠狠打击伊朗,打击伊朗的能源基础设施,甚至感觉迫在眉睫、必须要打、不打不...
接连反转!特朗普透露三个信息 特朗普称美伊3日将举行谈判。美国总统特朗普当地时间8月2日,美国总统特朗普谈及伊朗时称,关于霍尔木兹...
河南深夜通报:查实作弊 针对近期备受关注的2026年河南省“三支一扶”计划招募相关舆情,河南省“三支一扶”领导小组协调办公室...
高通机器人演示翻车,DeepM... 人形机器人领域正呈现出截然不同的两面性。一端是高通(Qualcomm)机器人的尴尬演示:在展示搭载最...
小米多款主力手机涨价,店员:很... 8月2日,小米商城显示,多款手机主力机型价格上调300元至500元不等。其中,REDMI Turbo...
主持人陈璇采访《奥德赛》主创人... 诺兰新片《奥德赛》周四举行北京首映礼,上海外语频道主持人陈璇采访外籍主创人员时半蹲弯腰,背对镜头,向...
初创公司推Arm架构AI服务器... 由前谷歌和Meta工程师于2023年创立的Majestic Labs,近日发布了一款旨在挑战英伟达G...
日元跌跌不休,美国罕见出手,外... 【环球时报驻日本特约记者 王军】在日元跌至近40年来最低水平后,日本政府和日本银行连续出手干预汇市,...
特朗普再提珍珠港事件 据朝日电视台8月3日报道,美国总统特朗普表示,美国政府出手买入日元实施汇率干预,目的是帮扶日本。2日...