StackStorm分析(一)StackStorm介绍

StackStorm介绍       StackStorm是一个强大的自动化平台,结合DevOps和ChatOps,提供可扩展、灵活和健壮的工具链用于应用、服务和工作流的自动化能力。  StackStorm核心概念 StackStorm的工作步骤大体如下:       1. StackStorm Sensor感应并触发事件。       2. Rules Engine对事件进行规则匹配,如果匹配产...
摘要由CSDN通过智能技术生成

StackStorm介绍

       StackStorm是一个强大的自动化平台,结合DevOpsChatOps,提供可扩展、灵活和健壮的工具链用于应用、服务和工作流的自动化能力。

 


 

StackStorm核心概念

 

StackStorm的工作步骤大体如下:

       1. StackStorm Sensor感应并触发事件。

       2. Rules Engine对事件进行规则匹配,如果匹配产生任务。

       3. StackStorm Worker执行任务,一般是调用到外部系统。

       4. StackStorm记录审计任务执行的细节。

       5.任务执行结果返回给Rules Engine进行进一步处理。


 

       可以看出StackStorm是个以事件驱动的系统,为此抽象出一系列概念来分解事件从产生、触发、规则匹配到执行的整个生命周期事件,具体包含核心概论如下:

Sensor感应器

       Sensor是一系列的感应器用于接受或者监测事件,当事件发生的时候,Sensor将会通知Trigger提交事件到StackStorm。

       Sensor是Python插件实现,只要实现StackStorm定义的接口,然后配置元数据YAML注册到StackStorm:

---
  class_name:"SampleSensor"
  entry_point:"sample_sensor.py"
  description:"Sample sensor that emits triggers."
  trigger_types:
    -
      name:"event"
      description:"An example trigger."
      payload_schema:
        type:"object"
        properties:
          executed_at:
            type:"string"
            format:"date-time"
            default:"2014-07-30 05:04:24.578325"

 

 

Trigger触发器

       Trigger代表事件,一般事件是由外部系统产生,比如监控告警,JIRA问题更新等等,另外也有通用的事件触发器,比如定时器或者WebHook。

       在StackStorm系统中,Trigger只是String类型的对象,由Sensor注册,用户可以在Sensor插件自定义新的Trigger。

 

Action 动作/任务

Action是事件触发后的处理方式,一般是由外部系统执行,包括:

  • 重启服务
  • 创建云服务
  • 发生邮件
  • 启动Docker容器
  • 制作VM快照

 

       Action可以是通用的执行方式,比如SSH,REST API调用,也能够集成Openstack、Docker/Kubernetes等系统实现。Action Runner是Action的执行环境,StackStorm的内置Action Runner:

Action Runner

Description

local-shell-cmd

This is the local runner. This runner executes a Linux command on the same host where StackStorm components are running.

local-shell-script

 This is the local runner. Actions are implemented as scripts. They are executed on the same hosts where StackStorm components are running.

remote-shell-cmd

This is a remote runner. This runner executes a Linux command on one or more remote hosts provided by the user.

remote-shell-script

This is a remote runner. Actions are implemented as scripts. They run on one or more remote hosts provided by the user.

python-script

This is a Python runner. Actions are implemented as Python classes with arun method. They run locally on the same machine where

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: StackStorm是一个开源自动化工具,用于创建、管理和执行工作流和自动化任务。Docker Compose是一个工具,用于定义和运行多个Docker容器的应用程序。StackStorm提供了一个Docker Compose配置文件(docker-compose.yaml),用于快速部署StackStorm服务。 这个docker-compose.yaml文件中包含了StackStorm的各个组件的配置信息。首先,它定义了要使用的基础镜像,如StackStorm工作者(worker)和队列服务(rabbitmq)。然后,它指定了各个容器的名称、端口映射和网络配置。 在docker-compose.yaml文件中,还定义了stackstorm服务容器的环境变量,用于指定配置参数,如数据库连接、日志级别等。此外,还可以定义其他容器的环境变量,以满足不同组件的需求。 通过运行docker-compose命令,可以根据这个配置文件来创建和启动StackStorm服务容器。Docker Compose会自动解析和处理配置文件中的依赖关系,并按照定义的顺序启动容器。这可以让我们快速部署和管理StackStorm服务,并且方便地进行扩展和升级。 总之,StackStorm的docker-compose.yaml文件是用来定义和管理StackStorm服务容器的配置文件。它提供了一种简便的方式来部署和管理StackStorm,使得自动化工作流和任务的创建和执行更加方便和高效。 ### 回答2: StackStorm 是一个开源自动化平台,可以用于自动化各类任务和流程。Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。一般来说,使用 Docker Compose 可以轻松地将 StackStorm 部署到 Docker 容器中。 stackstorm docker-compose.yaml 是一个用于在 Docker Compose 中定义 StackStorm 的配置文件。这个文件包含了 StackStorm 中的各个组件以及它们的配置。在编写这个文件时,我们可以指定 StackStorm 需要运行的容器数量、容器之间的依赖关系等。 通常,stackstorm docker-compose.yaml 包含以下几个部分: 1. Services 部分:这里定义了 StackStorm 中的各个组件的容器。比如,可以指定一个容器运行 StackStorm Web UI,另一个容器运行 StackStorm 后台服务,还可以有其他的容器用于运行 StackStorm 的数据库、消息队列等。 2. Networks 部分:这里定义了容器之间的网络连接方式。可以指定容器使用的网络模式,如桥接模式或者主机模式,以及容器之间的连接关系。 3. Volumes 部分:这里定义了容器中的数据卷。可以将 StackStorm 需要的数据持久化保存到宿主机上的指定目录,以便容器重启后能够恢复数据。 通过编写 stackstorm docker-compose.yaml 文件,并使用 Docker Compose 工具进行部署,可以快速搭建 StackStorm 环境,并保证该环境的可复制性和可移植性。同时,使用 Docker Compose 也方便了 StackStorm 的管理和维护工作,简化了容器之间的依赖关系管理。 ### 回答3: StackStorm是一个开源的自动化平台,它允许用户将不同的任务组织成工作流,并通过事件触发来自动化执行。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。 在StackStorm中使用Docker Compose,可以帮助我们更方便地部署和管理StackStorm的相关容器和服务。通过编写docker-compose.yaml文件,我们可以定义StackStorm容器的配置和依赖关系。 Docker Compose使用一种声明性的语法来定义应用程序的配置。在docker-compose.yaml文件中,我们可以指定StackStorm容器的镜像、环境变量、端口映射等配置。我们还可以定义其他依赖容器,例如数据库容器,用于支持StackStorm的运行。 以下是一个示例的docker-compose.yaml文件的片段: ``` version: '3.8' services: stackstorm: image: stackstorm/stackstorm:3.3.0 ports: - 443:443 - 80:80 environment: - ST2_VERSION=3.3.0 - ST2_AUTH_USERNAME=admin - ST2_AUTH_PASSWORD=MyPassword depends_on: - postgres postgres: image: postgres:12 environment: - POSTGRES_USER=stackstorm - POSTGRES_PASSWORD=stackstorm ``` 在这个示例中,我们定义了两个服务:stackstorm和postgres。stackstorm服务使用了stackstorm/stackstorm:3.3.0镜像,将443端口和80端口映射到宿主机。我们还指定了一些环境变量,用于配置StackStorm的版本和管理员账号密码。在depends_on部分,我们指定了stackstorm服务依赖于postgres服务。 通过运行docker-compose up命令,Docker Compose将会根据docker-compose.yaml文件创建并启动相应的容器。这样,我们就能够方便地使用Docker Compose来部署和管理StackStorm的相关容器和服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值