• Stars
    star
    6,009
  • Rank 6,706 (Top 0.2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html

StackStorm

StackStorm is a platform for integration and automation across services and tools, taking actions in response to events. Learn more at www.stackstorm.com.

Build Status Packages Build Status Codecov CII Best Practices Python 3.6,3.8 Apache Licensed Join our community Slack deb/rpm packages Code Search GitHub Discussions Twitter Follow


TL;DR

StackStorm Overview

StackStorm 5 min Intro Video

About

StackStorm is a platform for integration and automation across services and tools. It ties together your existing infrastructure and application environment so you can more easily automate that environment -- with a particular focus on taking actions in response to events.

StackStorm helps automate common operational patterns. Some examples are:

  • Facilitated Troubleshooting - triggering on system failures captured by Nagios, Sensu, New Relic and other monitoring, running a series of diagnostic checks on physical nodes, OpenStack or Amazon instances, and application components, and posting results to a shared communication context, like Slack or JIRA.
  • Automated remediation - identifying and verifying hardware failure on OpenStack compute node, properly evacuating instances and emailing VM about potential downtime, but if anything goes wrong - freezing the workflow and calling PagerDuty to wake up a human.
  • Continuous deployment - build and test with Jenkins, provision a new AWS cluster, turn on some traffic with the load balancer, and roll-forth or roll-back based on NewRelic app performance data.

StackStorm helps you compose these and other operational patterns as rules and workflows or actions; and these rules and workflows - the content within the StackStorm platform - are stored as code which means they support the same approach to collaboration that you use today for code development and can be shared with the broader open source community via StackStorm Exchange.

Who is using StackStorm?

See the list of known StackStorm ADOPTERS.md and Thought Leaders.

How it works

StackStorm architecture

StackStorm architecture diagram

StackStorm plugs into the environment via an extensible set of adapters: sensors and actions.

  • Sensors are Python plugins for inbound integration that watch for events from external systems and fire a StackStorm trigger when an event happens.

  • Triggers are StackStorm representations of external events. There are generic triggers (e.g., timers, webhooks) and integration triggers (e.g., Sensu alert, JIRA issue updated). A new trigger type can be defined by writing a sensor plugin.

  • Actions are StackStorm outbound integrations. There are generic actions (SSH, HTTP request), integrations (OpenStack, Docker, Puppet), or custom actions. Actions are either Python plugins, or any scripts, consumed into StackStorm by adding a few lines of metadata. Actions can be invoked directly by user via CLI, API, or the web UI, or used and called as part of automations - rules and workflows.

  • Rules map triggers to actions (or to workflows), applying matching criterias and map trigger payload data to action inputs.

  • Workflows stitch actions together into "uber-actions", defining the order, transition conditions, and passing context data from one action to the next. Most automations are multi-step (eg: more than one action). Workflows, just like "atomic" actions, are available in the action library, and can be invoked manually or triggered by rules.

  • Packs are the units of content deployment. They simplify the management and sharing of StackStorm pluggable content by grouping integrations (triggers and actions) and automations (rules and workflows). A growing number of packs is available on the StackStorm Exchange. Users can create their own packs, share them on GitHub, or submit them to the StackStorm Exchange organization.

  • Audit trail is the historical list of action executions, manual or automated, and is recorded and stored with full details of triggering context and execution results. It is also captured in audit logs for integrating with external logging and analytical tools: LogStash, Splunk, statsd, or syslog.

StackStorm is a service with modular architecture. It is comprised of loosely coupled microservice components that communicate over a message bus, and scales horizontally to deliver automation at scale. StackStorm has a full REST API, CLI client, and web UI for admins and users to operate it locally or remotely, as well as Python client bindings for developer convenience.

StackStorm is an established project and remains actively developed by a broad community.

Documentation

Additional documentation, including installation procedures, action/rule/workflow authoring, and how to setup and use triggers/sensors can be found at https://docs.stackstorm.com.

Hacking / Contributing

To set up a development environment and run StackStorm from sources, follow these instructions.

For information on how to contribute, our style guide, coding conventions and more, please visit the Development section in our documentation.

Security

If you believe you found a security issue or a vulnerability, please send a description of it to our private mailing list at info [at] stackstorm [dot] com.

Once you've submitted an issue, you should receive an acknowledgment from one our of team members in 48 hours or less. If further action is necessary, you may receive additional follow-up emails.

For more information, please refer to https://docs.stackstorm.com/latest/security.html

Copyright, License, and Contributor Agreement

Copyright 2020 The StackStorm Authors. Copyright 2019 Extreme Networks, Inc. Copyright 2014-2018 StackStorm, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.

More Repositories

1

st2-docker

StackStorm docker-compose deployment
Shell
185
star
2

st2contrib

MOVED! See StackStorm Exchange
Python
154
star
3

st2web

StackStorm Web UI
JavaScript
102
star
4

ansible-st2

Ansible Roles and Playbooks to deploy StackStorm
Jinja
100
star
5

orquesta

Orquesta is a graph based workflow engine for StackStorm. Questions? https://github.com/StackStorm/st2/discussions
Python
98
star
6

stackstorm-k8s

K8s Helm Chart that codifies StackStorm (aka "IFTTT for Ops" https://stackstorm.com/) Highly Availability fleet as a simple to use reproducible infrastructure-as-code app
Smarty
98
star
7

showcase-ansible-chatops

Vagrant Demo showing ChatOps with Ansible
Shell
77
star
8

st2docs

StackStorm Documentation.
Python
63
star
9

hubot-stackstorm

Hubot plugin for integration with StackStorm event-driven infrastructure automation platform.
JavaScript
49
star
10

st2vagrant

Deploy StackStorm event-driven automation platform locally with Vagrant
Shell
35
star
11

st2packaging-dockerfiles

Dockerfiles used to build and test StackStorm deb/rpm packages
Dockerfile
32
star
12

st2chatops

Packaging environment for building StackStorm chatops native packages
Shell
32
star
13

serverless-plugin-stackstorm

Plugin for serverless framework to run ready to use actions from StackStorm Exchange as AWS Lambda.
JavaScript
28
star
14

st2-packages

StackStorm deb/rpm packages (automated docker build pipeline)
Shell
27
star
15

st2-dockerfiles

StackStorm Dockerfiles (one-service-per-container) to build and push images to the StackStorm Docker registry. Used by stackstorm-ha K8s Helm chart and Docker-compose deployments.
Dockerfile
21
star
16

puppet-st2

Puppet Module to install and configure StackStorm, IFTTT for Ops
Puppet
21
star
17

chef-stackstorm

DEPRECATED! Community-maintained Chef Cookbook to deploy StackStorm, IFTTT for Ops
Ruby
16
star
18

st2flow

DEPRECATED & OBSOLETE! Previously StackStorm Enterprise (EWC) Workflow Editor. Now integrated directly into StackStorm OSS Core platform (st2web).
JavaScript
16
star
19

st2-auth-backend-ldap

DEPRECATED! Use official st2-auth-ldap instead, integrated into st2 core.
Python
15
star
20

st2-ansible-vagrant

Demo showing Ansible integration with StackStorm
Shell
15
star
21

orquestaconvert

Converts Mistral workflows into Orchestra workflows
Python
13
star
22

packer-st2

Packer templates for building & deploying Vagrant & OVA with StackStorm installed
Ruby
13
star
23

st2sdk

This repository contains different utilities and tools which help with the StackStorm integration pack development.
Shell
10
star
24

st2client.js

StackStorm ST2 JavaScript library
JavaScript
9
star
25

community

Async conversation about ideas, planning, roadmap, issues, RFCs, etc around StackStorm
8
star
26

st2cd

Content pack for internal build process at StackStorm
Shell
7
star
27

st2apidocs

StackStorm API UI generator for https://api.stackstorm.com/ and https://api-unstable.stackstorm.com/. Relies on https://github.com/StackStorm/st2apidocgen
JavaScript
6
star
28

st2_demos

StackStorm pack containing demo workflows and automations
Python
6
star
29

st2-rbac-backend

RBAC backend for StackStorm (previously part of EWC aka StackStorm Enteprise)
Python
5
star
30

st2-auth-ldap

LDAP backend for user authentication in StackStorm. Previously LDAP backend for EWC.
Python
5
star
31

lint-configs

Lint configs for different tools (flake8, pylint, etc.) used by StackStorm projects / repositories.
4
star
32

st2ci

New and improved continuous integration actions and workflows
Shell
3
star
33

st2packs-dockerfiles

Source for st2packs-builder and st2packs-runner images
Dockerfile
3
star
34

st2tests

Congregation of all tests pertaining to release of st2 software.
Shell
3
star
35

st2-auth-backend-pam

PAM authentication plugin for StackStorm
Python
3
star
36

st2apidocgen

Repository used in https://github.com/StackStorm/st2apidocs/ to generate the stackstorm API representation: https://api.stackstorm.com/ and https://api-unstable.stackstorm.com/
JavaScript
3
star
37

chef-openstack-mistral

Chef Cookbook to deploy StackStorm Mistral
Ruby
2
star
38

stackstorm-benchmarking-utils

Various utility tools and scripts for benchmarking StackStorm.
Python
2
star
39

stackstorm-st2community

Pack to help manage Stackstorm's community.
Python
2
star
40

st2-devbox

Dockerfile
2
star
41

st2mistral

[DEPRECATED] StackStorm plugins for OpenStack Mistral
Python
2
star
42

st2-auth-backend-sso-saml2

WARNING! Unfinished integration. Single Sign On backend for user authentication in StackStorm
Python
2
star
43

st2vagrantdev

Vagrant environment for people who work on / develop StackStorm. End users who want to deploy StackStorm on Vagrant see https://github.com/StackStorm/st2vagrant and https://docs.stackstorm.com/install/vagrant.html.
Shell
1
star
44

buildstatus

1
star
45

st2-auth-backend-vault

Authentication backend for StackStorm which reads authentication information from HashiCorp Vault service.
Python
1
star