stackstorm
天地一扁舟
这个作者很懒,什么都没留下…
展开
-
stackstorm 30. 源码分析之----stackstorm重要场景run action
目标:弄清楚run action原理目录:0 st2api调试代码前准备1 st2api服务分析2 关键方法publish_request分析3 st2actionrunner调试代码前准备4 st2actionrunner服务分析5 总结0 st2api调试代码前准备将st2api容器启动命令修改将 containers: - command: - bash - -c - exec /opt/stacksto...原创 2020-06-09 21:12:43 · 616 阅读 · 1 评论 -
stackstorm 29. 源码分析之----stackstorm的actionrunner服务并发能力分析
目标:弄清楚st2actionrunner的并出处理能力1 分析actionrunner逻辑流程在st2actionrunner服务中两个消费者服务ActionExecutionScheduler和ActionExecutionDispatcher,其中ActionExecutionScheduler服务既是消费者,也作为生产者发送消息给ActionExecutionDispatcher...原创 2020-04-30 20:37:38 · 522 阅读 · 0 评论 -
stackstorm 28. 源码分析之----stackstorm的resultstracker服务分析
目标:弄清楚st2resultstracker服务原理调试命令:sudo /opt/stackstorm/st2/bin/st2resultstracker --config-file /etc/st2/st2.conf1 主入口/opt/stackstorm/st2/lib/python2.7/site-packages/st2actions/cmd/st2resultstrack...原创 2020-04-15 09:22:06 · 412 阅读 · 0 评论 -
stackstorm 27. 源码分析之----stackstorm的notifier服务分析
目标:弄清楚st2notifier服务原理1 主入口st2/st2actions/st2actions/notifier/scheduler.pydef get_rescheduler(): timer = BlockingScheduler() time_spec = { 'seconds': cfg.CONF.scheduler.reschedul...原创 2020-04-13 09:26:54 · 247 阅读 · 0 评论 -
stackstorm 26. 源码分析之----stackstorm的auth服务分析
目标:弄清楚st2auth的原理1 总入口发送auth校验请求的url样例如下:http://st2auth:9100/tokens被st2auth服务接收到该请求后,进入如下代码:st2/st2auth/st2auth/controllers/v1/root.py代码如下:from st2auth.controllers.v1 import authclass RootC...原创 2020-04-13 09:23:37 · 823 阅读 · 0 评论 -
stackstorm 25. 源码分析之----stackstorm的actionrunner服务分析
目标:弄清楚actionrunner的原理1 总入口st2/st2actions/st2actions/cmd/actionrunner.pydef main(): try: _setup() return _run_worker() except SystemExit as exit_code: sys.exit(exi...原创 2020-04-08 22:14:23 · 411 阅读 · 0 评论 -
stackstorm 24. 源码分析之----stackstorm的rulesengine服务分析---3
目标:弄清楚st2rulesengine服务原理1和2的分析参见:https://blog.csdn.net/qingyuanluofeng/article/details/1053748633的分析参见:https://blog.csdn.net/qingyuanluofeng/article/details/1053749784 分析RulesEngine规则引擎分析Rul...原创 2020-04-07 22:12:39 · 334 阅读 · 0 评论 -
stackstorm 24. 源码分析之----stackstorm的rulesengine服务分析---2
目标:弄清楚st2rulesengine服务原理1和2的分析参见:https://blog.csdn.net/qingyuanluofeng/article/details/1053748633 分析rules_engine_worker = worker.get_worker()......rules_engine_worker.start()3.1 进入st2/st2re...原创 2020-04-07 21:59:23 · 391 阅读 · 0 评论 -
stackstorm 24. 源码分析之----stackstorm的rulesengine服务分析---1
目标:弄清楚st2rulesengine服务原理1 总入口st2/st2reactor/st2reactor/cmd/rulesengine.pydef main(): try: _setup() return _run_worker() except SystemExit as exit_code: sys.exit(e...原创 2020-04-07 21:54:41 · 331 阅读 · 0 评论 -
stackstorm 20. stackstorm的api调用接口分析
说明: 下面的接口调用是基于st2 2.10版本1 获取tokencurl -X POST -u 'st2admin:Ch@ngeMe' http://127.0.0.1:9100/tokens输出结果:[root@localhost task]# curl -X POST -u 'st2admin:Ch@ngeMe' http://127.0.0.1:9100/tokens{...原创 2019-03-28 09:25:21 · 1007 阅读 · 0 评论 -
stackstorm 19. Centos下安装stackstorm的webui
Centos下安装stackstorm的webui1 检查st2安装的服务执行:systemctl list-units|grep st2输出结果样例如下: st2actionrunner.service loaded active exited...原创 2019-03-28 09:09:29 · 501 阅读 · 0 评论 -
stackstorm 23. 源码分析之----stackstorm的sensor服务分析
1 总入口##################################################源码文件:st2/st2reactor/bin/st2sensorcontainerimport sysfrom st2reactor.cmd import sensormanagerif __name__ == '__main__': sys.exit(...原创 2019-04-04 22:14:52 · 470 阅读 · 0 评论 -
stackstorm 22. 源码分析之----stackstorm的action服务分析
1 总入口##################################源码文件:st2/st2actions/bin/st2actionrunnerimport sysfrom st2actions.cmd import actionrunnerif __name__ == '__main__': sys.exit(actionrunner.main())...原创 2019-04-03 22:32:31 · 755 阅读 · 0 评论 -
stackstorm 21. stackstorm的校验方式
1 校验如果仅仅需要默认的密码,使用用户名st2admin,密码 Ch@ngeMe需要改变密码吗? 运行: sudo htpasswd /etc/st2/htpasswd st2admin更复杂的情况则需要阅读stackstorm的校验。StackStorm包含了一个校验服务,该服务用于处理用户校验并且会生成有过期时间的token。当校验开启时(默认开启),这些tokens会在发送...翻译 2019-03-29 18:26:30 · 690 阅读 · 0 评论 -
stackstorm 18. 源码分析之----stackstorm表结构分析
1 查看stackstorm的mongodb中的表结构1.1 查看mongodb的用户名和密码StackStorm - /etc/st2/st2.confdatabase.username - MongoDB database username.database.password - MongoDB database password.messaging.url - RabbitM...原创 2019-03-26 09:05:17 · 612 阅读 · 1 评论 -
stackstorm 17.编写stackstorm的sensor
1 传感器Sensor基础Sensors: 获取事件发送给StackStorm。Python编写的。Triggers: 识别即将发送给StackStorm的事件。trigger是一个元组类型和可选的参数。Sensores注册trigger。传感器组成: python脚本文件和传感器的YAML元数据文件。传感器元数据文件: 组成: class_name: 类名,entry_po...原创 2019-02-25 22:59:12 · 915 阅读 · 0 评论 -
stackstorm 16.编写stackstorm的定时器
1 定时器基础定时器从本质上来说就是stackstorm中的rule。规则对trigger触发器到action(或工作流)做了映射。应用匹配的criteria并且映射trigger payloads到动作的输入。说白了rules包含trigger,action,criteria(可以不需要)3个部分,来将事件的触发映射到动作的执行。trigger是前置条件,如果触发,则继续查看cr...原创 2019-02-25 22:30:55 · 776 阅读 · 0 评论 -
stackstorm 3. 规则
1 规则StackStorm使用了规则和工作流来捕获可操作的模式来做自动化。规则对trigger触发器到action(或工作流)做了映射。应用匹配的criteria并且映射trigger payloads到动作的输入。2 规则结构规则定义在YAML中。规则定义结构,一些碧血的和可选的元素如下所示:--- name: "rule_name" ...翻译 2019-01-12 08:25:43 · 750 阅读 · 0 评论 -
stackstorm 1. 动作
1 Actions动作Actions是可以执行随意修复任务的代码片。它们可以被任意编程语言所编写。下面时可以被实现的简短的任务列表。重启一个服务器的服务创建一个新的云主机....当一个Rule的准则criteria被匹配的时候,动作就被触发了。多个动作可以被设计在一起作为一个工作流。动作也可以通过客户端以命令行,API或者UI的形式直接被执行。2 管理和运行动作命令...翻译 2019-01-12 09:11:56 · 1364 阅读 · 0 评论 -
stackstorm 4. 工作流
1 工作流Workflows典型的资料处理中心操作和处理包含了将多个动作通过不同系统组合在一起。为了捕获和自动化这些动作,StackStorm使用了工作流workflows。一个workflow将自动化的动作排场以行集成到一个高度的自动化中,并通过在正确时间,正确的输入来调用正确的动作来合理安排它们的执行。它维持state,在actions只见传递数据,并提供可信和透明性给execu...翻译 2019-01-14 22:34:29 · 1321 阅读 · 0 评论 -
stackstorm 5 工作流之ActionChain
1 ActionChainActionChain是一个不加修饰的线性工作流。它是动作调用的简单串联。每个动作的结果(成功或失败)会被检查并用于确定下一次动作的执行。它提供了简单的分支逻辑,基于成功或失败。数据可以在各个动作只见传递,并且结果可以发布给每个动作。从StackStorm的观点来看,一个动作链是一个动作。因此,它有相同的操作和特性。例如从命令行的定义,注册,执行,规则的使...翻译 2019-01-14 22:36:09 · 858 阅读 · 0 评论 -
stackstorm 6. 工作流之Mistral
1 MistralMistral是一个用于管理和执行动作流的Openstack项目。Mistral是可以作为一个单独的mistral服务在StackStorm中安装。一个Mistral工作流可以通过https://docs.openstack.org/mistral/latest/user/wf_lang_v2.html被定义为一个StackStorm动作。表达式语言,例如YAQL被...翻译 2019-01-14 22:39:26 · 1074 阅读 · 0 评论 -
stackstorm 0.stackstorm组成,服务与架构
1 StackStorm组成 StackStorm环境中的插件是通过扩展传感器和动作实现。1) Sensors是用于内部或外部集成的Python插件,该插件可以接受到个自的事件。当一个外部系统的事件发生时,该事件可以被一个sensor处理,一个StackStorm的trigger触发器将会发射到系统中。2) Triggers是StackStorm中外部事件的表现。有通...翻译 2019-01-26 08:21:01 · 1240 阅读 · 0 评论 -
stackstorm 7. 工作流之Mistral + YAQL
1 Mistral + YAQLYAQL是很典型地用于简单条件验证和在Mistral工作流中进行数据转换。在你没有制作出动作但是有需求需要根据动作结果来判定是否继续地场景会有很多,或者有一个将结果转换为另一个值或者结构化用于工作流重下一次动作地需求存在。下面是YAQL在Mistral工作流重的使用场景:1) 定义传递给任务的输入值2) 定义任务和工作流发布的输出值3) 定义条件...翻译 2019-01-21 21:56:41 · 1314 阅读 · 0 评论 -
stackstorm 10. Packs
1 Packs一个Pack是用于扩展StackStorm集成和自动化的开发单元。典型地,一个pack被单独以service或者产品边界所组织,例如AWS, Docker, Sensu等等。一个Pack可以包含Actions, Workflows, Rules, Sensors和Aliases。StackStorm的内容也是作为一个pack的部分,因此理解如何创建packs和使用它们很重...翻译 2019-01-21 22:03:25 · 612 阅读 · 0 评论 -
stackstorm 11. Webhooks
1 WebhooksWebhooks允许通过使用HTTP webhooks集成外部系统到StackStorm中。不像传感器sensor使用的pull方法,webhooks使用了一个push方法。它们通过使用HTTP Post请求将触发器trigger直接推到StackStorm的API中。2 Sensors和Webhooks传感器集成到外部系统并且,服务使用了一种polling...翻译 2019-01-21 22:05:34 · 476 阅读 · 0 评论 -
stackstorm 12.Datastore
1 Datastoredatastore服务的目的是允许用户存储共同的参数和它们的值到StackStorm中,用于服用sensors, actions和rules的定义。datastore服务将数据以键值对形式存储。它们可以通过StackStorm命令行或者StackStorm的Python客户端的get/set获取到。从传感器和动作插件中,,因为它们是用Python实现的,键值对...翻译 2019-01-22 21:36:37 · 226 阅读 · 0 评论 -
stackstorm 13.编写stackstorm的action
1 actions基础action包含两个部分:action元数据文件和action的执行脚本文件。action元数据文件是yaml格式,描述这个action的名称,以及执行脚本的位置,执行脚本需要的参数。action的YAML参数如下:name: 动作名称runner_type: 执行动作的运行器类型enabled: 当为disabled时,动作不能被调用entry_po...原创 2019-02-24 10:35:45 · 1004 阅读 · 4 评论 -
stackstorm 14.编写stackstorm的mistral
1 mistral动作流基础因为workflows也是属于action,因此workflows在actions下面因为mistral工作流比较特殊,它和之前执行的actions中对应的shell脚本或者python脚本不同,它本身是一个yaml文件。必须的参数:typeinputoutputtasks: task1: ...... task2: ...原创 2019-02-25 22:04:16 · 502 阅读 · 0 评论 -
stackstorm 15.编写stackstorm的actionchain
1 actionchain基础创建一个动作链动作链被定义在包中,在 /opt/stackstorm/packs/<pack>/actions/ 目录下。一个动作链需要两个文件: 一个YAML元数据文件,和用于简单动作相同的作用,和一个ActionChain定义文件。元数据文件在 <pack>/actions 目录,而ActionChain定义被放在 <p...原创 2019-02-25 22:08:41 · 357 阅读 · 0 评论 -
stackstorm 2. 传感器和触发器
Sensores and Triggers1 Seonsors传感器是一种集成外部系统和StackStorm事件的方式。传感器是由Python代码组成,可以周期性轮询一些外部系统,或者被动等待到达的事件。它们使用StackStorm中的触发器,这样可以被规则所匹配,可以用于潜在的动作执行。Sensores是用Python写的,并且必须遵守StackStorm定义的传感器接口要求。...翻译 2019-01-12 08:22:01 · 1422 阅读 · 0 评论