Home / 技术调研 / stackstorm / StackStorm Docker部署及插件开发

StackStorm Docker部署及插件开发

基本介绍

stackstorm是一个事件驱动的自动化引擎,可以将应用程序、服务和工作流程连接起来,它具有可扩展性和灵活性。

主要角色:

    • 传感器(Sensors):是用于分别接收或监视事件的入站或出站集成的Python插件。 当来自外部系统的事件发生并由传感器处理时,StackStorm触发器将发射到系统中。
    • 触发器(Triggers):是外部事件的StackStorm表示形式。 有通用触发器(例如定时器,webhooks)和集成触发器(例如,Sensu告警,JIRA问题更新)。 通过编写传感器插件可以定义新的触发器类型。
    • 动作(Actions)是StackStorm出站集成。 有通用动作(ssh,REST调用),集成(OpenStack,Docker,Puppet)或自定义操作。 动作是Python插件或任何脚本,通过添加几行元数据将其消耗到StackStorm中。 动作可以由用户通过CLI或API直接调用,或者作为规则和工作流程的一部分使用和调用。
    • 规则(Rules):将触发器映射到动作(或工作流),应用匹配条件并将触发器加载到动作输入中。
    • 工作流(Workflows)将动作拼接成“超级动作”,定义顺序,转换条件以及传递数据。 大多数自动化不止一步,因此需要多个动作。 工作流就像“原子”动作一样,可在Action库中使用,并且可以手动调用或由规则触发。
    • 包(Packs)是内容部署的单位。 它们通过对集成(触发器和动作)和自动化(规则和工作流)进行分组,简化了StackStorm可插拔内容的管理和共享。 StackStorm Exchange上有越来越多的包可用。 用户可以创建自己的包,在Github上共享它们,或者提交给StackStorm Exchange.
    • 审计跟踪(Audit Trail)记录并存储手动或自动操作执行的审计跟踪,并存储触发上下文和执行结果的全部细节。 它还被记录在审计日志中,用于集成外部日志记录和分析工具:LogStash,Splunk,statsd,syslog

 

Docker部署

 

插件开发

安装插件

方法1:

方法2:

 

插件及配置参考

目录结构

传感器

sensors/sensor1.yaml

sensors/sensor1.py, 发出的事件名为hello.event1,没有指定trace

 

动作

actions/task.yaml

 

actions/task.sh

 

 

规则配置

1 Comment

发表评论