SaltStack事件驱动 – event reactor
[root@master ~]# salt-run state.event pretty=True
{
"_stamp": "2019-09-26T08:01:22.343862",
"minions": [
"master"
]
}
salt/job//new {
"_stamp": "2019-09-26T08:01:22.354693",
"arg": [],
"fun": "test.ping",
"jid": "",
"minions": [
"master"
],
"missing": [],
"tgt": "master",
"tgt_type": "glob",
"user": "root"
}
salt/job//ret/master {
"_stamp": "2019-09-26T08:01:22.476802",
"cmd": "_return",
"fun": "test.ping",
"fun_args": [],
"id": "master",
"jid": "",
"retcode": ,
"return": true,
"success": true
}
2、reactor配置
[root@master ~]# cat /etc/salt/master.d/reactor.conf #在master节点中配置reactor的配置信息
reactor:
- 'minion_start': #匹配event中事件tag
- /srv/reactor/touch.sls #minion启动是应用一个state文件
[root@master ~]#
[root@master ~]#
[root@master ~]# cat /srv/reactor/touch.sls
touch_temp:
local.state.sls:
- tgt: {{ data['id'] }}
- arg:
- touch_abc
[root@master ~]#
[root@master ~]#
[root@master ~]# cat /srv/salt/base/touch_abc.sls
touch_abc:
file.append:
- name: /tmp/abc.txt
- text:
- 'this is append line1'
- 'this is append line2' [root@master ~]#
reactor SLS文件
与salt reactor SLS有所以类似的地方。salt state和salt reator SLS文件都是使用YAML和Jinja写的,不过因为它们语法有些不同,且用作不同的目的,它们应该放在不同的目录中(如reactor是在/srv/salt/reactors目录)。
reactor 的类型
salt reactor有如下几种类型:
- 远程执行: 在目标minions运行一个执行模块。这个可以通过调用salt命令来完成(包括应用state或highstate)
- Salt Runners: 通过使用salt-run调用的任务。如HTTP runnner可以触发webhook。
- Wheel: Wheel命令管理你的salt环境,完成如接收密钥和更新配置设置的任务。
远程执行
这种类型的reactor是直接与salt执行模块连接。如果你考虑使用salt命令来运行一个远程执行模块,你应该知道salt命令必须包含三个信息:
- 目标
- 函数
- 参数
salt reactor中的远程执行也同样需要这三个信息:
<section id>:
local.<function>:
- tgt: <target>
- arg:
<arguments>
注意执行模块必须以local为前缀。我们来看在命令行安装一个包是怎样的:
、命令行
salt 'myminion' pkg.install cowsay 、在reactor SLS文件中,应该是按如下配置:
install cowsay on myminion:
local.pkg.install:
- tgt: 'myminion'
- arg:
- cowsay
SaltStack事件驱动 – event reactor的更多相关文章
- 【python】详解事件驱动event实现
[python]详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出). 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做 ...
- 事件驱动模式--Reactor
原文:https://www.cnblogs.com/harvyxu/p/7498763.html 1 Reactor模型 Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思 ...
- 利用saltstack的event实现自己的功能
saltstack的master上minion连接较多,下面这个程序可以分析哪些minion任务执行成功,哪些执行失败以及哪些没有返回. 脚本说明: 一.最先打印出本次任务的job id.comman ...
- saltStack的event接口通过mysql数据库接收SaltStack批量管理日志
event是一个本地的ZeroMQ PUB Interface,event是一个开放的系统,用于发送信息通知salt或其他的操作系统.每个event都有一个标签.事件标签允许快速制定过滤事件.除了标签 ...
- 彻底搞懂彻底搞懂事件驱动模型 - Reactor
在高性能网络技术中,大家应该经常会看到Reactor模型.并且很多开源软件中都使用了这个模型,如:Redis.Nginx.Memcache.Netty等. 刚开始接触时可能一头雾水,这到底是个什么东东 ...
- saltstack之salt event事件用法
event是一个本地的ZeroMQ PUB Interface,event是一个开放的系统,用于发送信息通知salt或其他的操作系统.每个event都有一个标签.事件标签允许快速制定过滤事件.除了标签 ...
- Reactor模式
对象行为类的设计模式,对同步事件分拣和派发.别名Dispatcher(分发器) Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I ...
- reactor模型框架图和流程图 libevent
学习libevent有助于提升程序设计功力,除了网络程序设计方面外,libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏.函数指针.c语言的多态支持.链表和堆等等,都有助于提升自身 ...
- 学习saltstack (四)
一.salt常用命令 salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令 salt [options] '<target>' <function ...
随机推荐
- 算法5:队列——解密 QQ 号
新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则.规则是这样的 ...
- div 100% 填充页面
css中 html,body{ margin:0; padding:0; height:100%; }
- 输入框中提示信息(html5)
placeholder 属性规定可描述输入字段预期值的简短的提示信息(比如:一个样本值或者预期格式的短描述). 该提示会在用户输入值之前显示在输入字段中. 注意:placeholder 属性适用于下面 ...
- spring 官方文档-片段学习——webflux-ann-controller
spring 官方文档-片段学习总结 片段所在连接:https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-referenc ...
- 2020/2/3 PHP代码审计之PHP弱类型
0x00 简介 php中有两种比较的符号 == 与 === <?php 2 $a = $b ; 3 $a===$b ; 4 ?> === 在进行比较的时候,会先判断两种字符串的类型是否相等 ...
- 进度4_家庭记账本App
在上一个博客中,我学习了用Fragment进行数据的传值,但是出现了好多问题,我通过百度查阅资料发现fregment在进行数值传输的时候有的语法不能使用,并且不方便的进行数据库的使用,所以我在原来的家 ...
- oracle(8)视图和查询数据库对象方法
视图 view 视图是数据库的对象之一. 视图也叫做虚表,既虚拟表,本质是对应一条select 语句, select语句的结果集赋予一个名字就是视图的名字. 作用: 1.可以简化复杂的查询 2.可以限 ...
- 牛客——Rabbit的字符串
题目: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Rabbit得到了一个字符串,她的好朋 ...
- C++多态性与虚函数
派生一个类的原因并非总是为了继承或是添加新的成员,有时是为了重新定义基类的成员,使得基类成员“获得新生”.面向对象的程序设计真正的力量不仅仅是继承,而且还在于允许派生类对象像基类对象一样处理,其核心机 ...
- Map的6种遍历方法
声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635 探讨有几种遍历Map的方法其实意义并不大,网上的文章一般讲4种或5种的居多,重要的是知道遍历的内涵,从遍历 ...