StackStorm/st2
GitHub: StackStorm/st2
StackStorm 是一个面向 DevOps 和 SRE 的事件驱动自动化平台,通过传感器监听外部事件、规则引擎匹配条件、工作流编排多步操作,实现跨系统的自动修复、事件响应和部署自动化。
Stars: 6464 | Forks: 781
[](https://www.stackstorm.com)
**StackStorm** 是一个跨服务和工具的集成与自动化平台,能够响应事件并执行相应操作。欢迎访问 [www.stackstorm.com](http://www.stackstorm.com/product) 了解更多。
[](https://github.com/StackStorm/st2/actions/workflows/ci.yaml)
[](https://circleci.com/gh/StackStorm/st2)
[](https://codecov.io/github/StackStorm/st2?branch=master)
[](https://bestpractices.coreinfrastructure.org/projects/1833)

[](LICENSE)
[](https://stackstorm.com/community-signup)
[](https://packagecloud.io/StackStorm/)
[](https://sourcegraph.com/stackstorm)
[](https://github.com/StackStorm/st2/discussions)
[](https://twitter.com/StackStorm/)
## 太长不看
* 安装 准备一台符合[系统要求](https://docs.stackstorm.com/install/system_requirements.html)的纯净 64 位 Linux 主机。运行安装脚本:
curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password=Ch@ngeMe
* 阅读文档:[https://docs.stackstorm.com/index.html](https://docs.stackstorm.com/install/index.html)
* 有问题?请查看 [forum.stackstorm.com](https://forum.stackstorm.com/)
* 或加入我们的 [Slack 社区](https://stackstorm.com/community-signup)
## StackStorm 概述
[](https://www.youtube.com/watch?v=pzZws3ftDtA)
### 关于
StackStorm 是一个跨服务和工具的集成与自动化平台。它将现有的基础设施和应用环境连接起来,从而更轻松地实现环境自动化——特别侧重于响应事件并执行相应操作。
StackStorm 有助于自动化常见的运维模式。一些例子如下:
* **便捷故障排查** - 针对 Nagios、Sensu、New Relic 及其他监控系统捕获的系统故障触发操作,在物理节点、OpenStack 或 Amazon 实例以及应用组件上运行一系列诊断检查,并将结果发布到共享的沟通环境中,例如 Slack 或 JIRA。
* **自动修复** - 在 OpenStack 计算节点上识别并验证硬件故障,妥善迁移实例,并通过电子邮件通知 VM 可能的停机时间;但如果出现任何问题——冻结工作流并呼叫 PagerDuty 叫醒相关人员。
* **持续部署** - 使用 Jenkins 构建和测试,配置新的 AWS 集群,通过负载均衡器开启部分流量,并根据 NewRelic 应用性能数据进行推进或回滚。
StackStorm 帮助您将这些以及其他运维模式编写为规则、工作流或操作;这些规则和工作流——即 StackStorm 平台内的内容——被*作为代码 (as code)* 存储,这意味着它们支持与您当今用于代码开发相同的协作方式,并且可以通过 [StackStorm Exchange](https://exchange.stackstorm.org) 与更广泛的开源社区共享。
### 谁在使用 StackStorm?
请查看已知的 StackStorm [采纳者列表](/ADOPTERS.md) 和 [思想领袖](https://stackstorm.com/stackstorm-thought-leaders/)。
### 工作原理
#### StackStorm 架构

StackStorm 通过可扩展的适配器集合(即传感器和操作)接入环境。
* **Sensors (传感器)** 是用于入站集成的 Python 插件,它们负责监听来自外部系统的事件,并在事件发生时触发 StackStorm trigger。
* **Triggers (触发器)** 是 StackStorm 对外部事件的表示。有通用触发器(例如定时器、webhook)和集成触发器(例如 Sensu 警报、JIRA 问题更新)。可以通过编写传感器插件来定义新的触发器类型。
* **Actions (操作)** 是 StackStorm 的出站集成。包含通用操作(SSH、HTTP 请求)、集成操作(OpenStack、Docker、Puppet)或自定义操作。操作既可以是 Python 插件,也可以是任何脚本,只需通过添加几行元数据即可整合到 StackStorm 中。用户可以通过 CLI、API 或 Web UI 直接调用操作,也可以在自动化流程(规则和工作流)中使用和调用它们。
* **Rules (规则)** 将触发器映射到操作(或工作流),应用匹配条件,并将触发器的 payload 数据映射到操作的输入。
* **Workflows (工作流)** 将多个操作串联成“超级操作”,定义执行顺序、转换条件,并将上下文数据从一个操作传递到下一个操作。大多数自动化是多步骤的(例如:包含多个操作)。工作流与“原子”操作一样,都可在操作库中找到,并且可以手动调用或由规则触发。
* **Packs (包)** 是内容部署的单元。它们通过将集成(触发器和操作)和自动化(规则和工作流)分组,简化了 StackStorm 可插拔内容的管理与共享。StackStorm Exchange 上提供了数量不断增长的各种包。用户可以创建自己的包,将它们分享在 GitHub 上,或者提交给 StackStorm Exchange 组织。
* **Audit trail (审计追踪)** 是操作执行(无论是手动还是自动化)的历史记录列表,会被记录并存储下来,包含完整的触发上下文和执行结果详细信息。它也会被捕获到审计日志中,以便与外部日志和分析工具(如 LogStash、Splunk、statsd 或 syslog)进行集成。
StackStorm 是一个具有模块化架构的服务。它由通过消息总线进行通信的松散耦合的微服务组件组成,并支持水平扩展以实现大规模自动化。StackStorm 拥有完整的 REST API、CLI 客户端和 Web UI,供管理员和用户在本地或远程进行操作,同时还提供了 Python 客户端绑定以方便开发者使用。
StackStorm 是一个成熟的项目,目前仍由广泛的社区积极开发。
## 文档
附加文档,包括安装步骤、操作/规则/工作流编写,以及如何设置和使用触发器/传感器,可以在 [https://docs.stackstorm.com](https://docs.stackstorm.com) 找到。
## 开发 / 贡献
要设置开发环境并从源代码运行 StackStorm,请遵循[这些说明](https://docs.stackstorm.com/development/sources.html)。
有关如何贡献、我们的风格指南、编码约定等信息,
请访问我们文档中的[开发部分](https://docs.stackstorm.com/development/index.html)。
## 安全
如果您认为自己发现了安全问题或漏洞,请将其描述发送至
我们的私人邮件列表:info [at] stackstorm [dot] com。
提交问题后,您应该会在 48 小时或更短的时间内收到我们团队成员的确认。
如果需要采取进一步行动,您可能会收到后续的跟进邮件。
有关更多信息,请参阅 https://docs.stackstorm.com/latest/security.html
## 版权、许可和贡献者协议
Copyright 2020 The StackStorm Authors.
Copyright 2019 Extreme Networks, Inc.
Copyright 2014-2018 StackStorm, Inc.
根据 Apache 许可证 2.0 版(“许可证”)授权;除非遵守该许可证,否则您不得使用本作品。您可以在 [LICENSE](LICENSE) 文件中或在以下地址获取该许可证的副本:
[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
通过贡献,您同意这些贡献是您自己的(或已获得您的雇主的批准),并且您根据项目的许可证,向该项目的所有当前和未来的用户和开发者授予全面、完整、不可撤销的版权许可。
标签:ChatOps, IFTTT for Ops, Python, SRE, StackStorm, TCP/UDP协议, 事件驱动, 云计算, 偏差过滤, 工作流引擎, 平台工程, 开源, 开源框架, 持续交付, 持续集成, 搜索引擎查询, 故障排查, 无后门, 特权提升, 网络调试, 自动修复, 自动化, 自动化部署, 规则引擎, 运维自动化, 逆向工具, 集成平台