saltstack学习-2 :returnner-将结果发送给syslog和mysql(单边模式)

一,returnner介绍

1,默认情况下,发送给minion的命令执行结果将返回给salt-master。Saltstack Returnner的接口允许将结果发送给任意系统。

GitHub:https://github.com/saltstack/salt/tree/develop/salt/returners

官网:https://docs.saltstack.com/en/latest/ref/returners/

二,returnner模块列表

三,案例

1,returnner返回到syslog

salt-master执行命令:

[[email protected] ~]# salt ‘*‘ test.ping --return syslog
dns02:
    True
dns01:
    True

查看salt-minion端syslog日志

[[email protected] ~]# tail -f /var/log/messages
Dec  9 22:22:31 dns02 python2.6: {"fun_args": [], "jid": "20171209222231433150", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "dns02"}

2,returnner返回给mysql(单边模式)

  • 安装mysql(可以在master也可以在其它服务器)
[[email protected] ~]# yum install –y mysql
  • 启动mysql服务
[[email protected] tmp]# service mysql start
Starting MySQL........ SUCCESS!
  • 设置root密码
[[email protected] tmp]# mysqladmin -u root password ‘123456‘
  • 创建数据库,并授权
--创建数据库
CREATE DATABASE `salt`DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
USE `salt`; 

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; 

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,KEY `id` (`id`),KEY `jid` (`jid`),KEY `fun` (`fun`) )
ENGINE=InnoDB DEFAULT CHARSET=utf8;

--授权
GRANT ALL PRIVILEGES ON salt.* to ‘salt‘@‘%‘ identified by ‘salt‘;
flush privileges;
  • 修改所有minion配置文件,在配置文件结尾添加:
[[email protected] ~]# vi /etc/salt/minion
mysql.host: ‘10.80.0.162‘
mysql.user: ‘salt‘
mysql.pass: ‘salt‘
mysql.db: ‘salt‘
mysql.port: 3306
  • 重启所有minion服务
[[email protected] ~]# salt ‘*‘ service.restart salt-minion
dns01:
    True
dns02:
    True
  • 所有minion安装MySQL-python模块
[[email protected] tmp]# salt ‘*‘ cmd.run ‘yum install -y MySQL-python‘
dns02:
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * epel: mirrors.tongji.edu.cn
    Resolving Dependencies
    --> Running transaction check
    ---> Package MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6 will be installed
    --> Finished Dependency Resolution

    Dependencies Resolved

    ================================================================================
     Package             Arch          Version                    Repository   Size
    ================================================================================
    Installing:
     MySQL-python        x86_64        1.2.3-0.3.c1.1.el6         base         86 k

    Transaction Summary
    ================================================================================
    Install       1 Package(s)

    Total download size: 86 k
    Installed size: 246 k
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction

      Installing : MySQL-python-1.2.3-0.3.c1.1.el6.x86_64                       1/1 

      Verifying  : MySQL-python-1.2.3-0.3.c1.1.el6.x86_64                       1/1 

    Installed:
      MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6                                      

    Complete!
dns01:
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * epel: mirrors.tongji.edu.cn
    Resolving Dependencies
    --> Running transaction check
    ---> Package MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6 will be installed
    --> Finished Dependency Resolution

    Dependencies Resolved

    ================================================================================
     Package             Arch          Version                    Repository   Size
    ================================================================================
    Installing:
     MySQL-python        x86_64        1.2.3-0.3.c1.1.el6         base         86 k

    Transaction Summary
    ================================================================================
    Install       1 Package(s)

    Total download size: 86 k
    Installed size: 246 k
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction

      Installing : MySQL-python-1.2.3-0.3.c1.1.el6.x86_64                       1/1 

      Verifying  : MySQL-python-1.2.3-0.3.c1.1.el6.x86_64                       1/1 

    Installed:
      MySQL-python.x86_64 0:1.2.3-0.3.c1.1.el6                                      

    Complete!
  • 测试写入mysql
[[email protected] tmp]# salt ‘*‘ cmd.run ‘hostname‘ --return mysql
dns02:
    dns02
dns01:
    dns01
  • 结果
mysql> select * from salt_returns;
+---------+----------------------+---------+-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------+
| fun     | jid                  | return  | id    | success | full_ret                                                                                                                                     |
+---------+----------------------+---------+-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------+
| cmd.run | 20171210074613759042 | "dns02" | dns02 | 1       | {"fun_args": ["hostname"], "jid": "20171210074613759042", "return": "dns02", "retcode": 0, "success": true, "fun": "cmd.run", "id": "dns02"} |
| cmd.run | 20171210074613759042 | "dns01" | dns01 | 1       | {"fun_args": ["hostname"], "jid": "20171210074613759042", "return": "dns01", "retcode": 0, "success": true, "fun": "cmd.run", "id": "dns01"} |
+---------+----------------------+---------+-------+---------+----------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

snailshadow 标签: returnnersaltstack

时间: 2024-10-07 21:09:13

saltstack学习-2 :returnner-将结果发送给syslog和mysql(单边模式)的相关文章

saltstack学习篇

参考链接:http://sofar.blog.51cto.com/353572/1596960/ http://sofar.blog.51cto.com/353572/1596960/ 自动化运维工具SaltStack详细部署2014-12-28 17:30:34标签:saltstack原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1596960============

saltstack学习记录

安装 pip 安装 注意  依赖到zeromq3 minion过一段时间去请求master salt-api  可以访问salt去远程执行 ruby puppet   DSL配置   erb文件  模块  加载  模板支持最差 chef     定义直接是ruby代码   erb模板系统   原生支持 python saltstack   yaml配置文件    python程序模板   模板支持很好 python写模块 ipc 进程间通信 都使用key认证    安全 salt-key  -L

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

saltstack学习

一.安装 1.master安装 yum install salt-master vi /etc/salt/master interface: 192.168.55.1 /etc/init.d/salt-master start 2.minion安装 yum install salt-minion vi /etc/salt/minion master: 192.168.55.1 id: 192.168.5.31 /etc/init.d/salt-minion start 配置文件interface

Saltstack 学习之target minions(一)

本文总结saltstack如何定位目标主机,以及介绍一些常见使用样例. > 为什么需要定位主机? 作为配置管理软件,首先要解决的是如何确定一次推送的主机,或者说特定配置的推送目标.试问如果无法很好的确定一次或多次推送的目标,又何谈实现大批主机的分类配置管理的自动化呢? > saltstack的target机制? saltstack 为此建立了一套很是完善的minion定位机制.官方术语叫"target minions",即通过多种途径,指定minion具有的属性(比如正则匹

Saltstack 学习之target minions(二)

本文紧接上一篇,就target的各分类方式的详细用法予以讲解. > Grains 首先一点,需要注意的是,minion的grains信息在minion启动时便会生成和加载,之后便以静态数据的形式存在. Grains的匹配在前文已经有所提及,实现原理便是读取grains的dict数据,而后与tgt字串进行匹配,当然,它支持嵌套key-value形式,如: salt -G 'ec2_tags:environment:*production*' test.ping -v 上述命令即寻找grains的e

Saltstack学习笔记(2)

1.5 Salt  命令介绍(常用的这些一定要多练习) 命令           功能描述 salt           Salt 主命令,比如执行命令模块 satl-cp        复制文件到指定的系统上去 salt-key       和 Minion 之间进行身份验证 salt-master    Master 主守护进程,用于控制 Minion salt-run       前端命令执行 salt-syndic    Salt syndic 守护进程,用于多级 salt-master

filebeat 获取nginx日志 发送给ElasticSearch

目的:通过filebeat获取nginx日志,发送给ElasticSearch,filebeat可以解析json格式日志,所以设置nginx日志为json格式. 1.配置nginx配置文件     log_format jsonTest '{"@timestamp":"$time_iso8601",'                   '"host":"$server_addr",'                   '&

saltstack学习笔记2-认证

master和minion通信之前我们需要对每个minion进行认证,认证很简单,上节启动后,通过命令查看下认证列表 master端: salt-key -L    #查看认证列表 这时我们会发现未认证的两个主机,他们就是我们的minion1和2 这时我们可以通过两个命令来添加他们,单个添加和批量添加 salt-key -a 'minion1'    #单个添加 salt-key -A    #批量添加 当然能添加就能删除,删除命令也是两个,单个删除和批量删除 salt-key -d 'mini