StackStorm与ChatOps实践

本文主要介绍StackStorm结合Hubot实现ChatOps的实践。

背景介绍

StackStorm是什么?

StackStorm是一个跨服务和工具进行集成和自动化的平台,将用户现有的基础建设和应用程序环境联系在一起,因此可以更轻松地自动化该环境。它特别着重于响应事件而采取行动。一句话总结StackStorm就是一个事件驱动的自动化引擎。
自动化引擎
StackStorm是具有模块化体系结构的服务,拥有高可扩展性和灵活性,配备Web UI,CLI客户端,并且完美支持 ChatOps 和全操作的API实现。下面是StackStorm的官方架构图。
架构图
官方也给出了一些利用StackStorm可以实现的常见操作,例如:

  • 便利的故障排除:由Sensu,Nagios,New Relic等监控系统捕获的系统故障,可以触发在物理节点,OpenStack,Amazon实例以及应用程序组件上运行一系列诊断检查,并将结果发布到诸如WeChat,Slack或JIRA等共享通信应用。
  • 自动修复:识别并验证OpenStack计算节点上的硬件故障,适当的疏散实例并通知管理员可能的故障时间,但如果出现问题,冻结工作流程并唤醒相关人员处理。
  • 持续部署:使用Jenkins进行构建和测试,配置一个新的AWS集群,开启负载均衡器的一些流量等。

ChatOps又是什么?

ChatOps理念最早由GitHub提出,他们发现在日常工作中,经常执行 git checkout git commit git push 等git常用指令。为了免于不停的运行这些相同的指令,他们开发了Hubot机器人,来帮助完成诸如代码提交,代码部署,代码合并等一系列繁杂的工作,ChatOps也就应运而生了。

ChatOps是对DevOps的升级,结合 AI 落地,最终实现“聊着天就把活干了”。ChatOps 以聊天室,即沟通平台为中心,通过机器人对接后台的各种服务,相关工作人员只需要在聊天会话中对机器人发出命令,即可与后台服务进行交互。ChatOps有效的联接了人和工具、人和人以及工具和工具,打破了信息壁垒,从而大大提高了工作效率和协作体验。

场景示例

StackStorm结合Hubot可以带来怎样的ChatOps体验?下面通过磁盘空间告警处理这一场景,做一个简单的展示。流程如下图所示,StackStorm接入Zabbix后,Zabbix告警触发流程启动,中间的交互过程通过Slack完成。这里假设预先设置的磁盘空间清理脚本适用。
流程
在Slack中配置好hubot聊天机器人后,管理员能够接收到Zabbix告警,同时会收有一条询问是否忽略该告警,这里通过inquiry源格式回复False后,hubot将会按照上述流程进行下一步骤,继续询问是否清理,回复yes后,StackStorm将会在后台自动执行清理脚本,并将清理的空间大小反馈给管理员,最终可以看到告警恢复的通知。
在这里插入图片描述

未来应用

1 实现运维自动化

上面展示的是一个非常简单的场景,通过StackStorm还可以实现更多复杂的运维场景,例如前面官方给出的一些操作。利用StackStorm完成监控自动化,检测修复自动化,事件提醒自动化等一系列运维自动化操作,可以大大提高运维效率。

2 运维聊天机器人

基于Hubot开发Adapter,可以在自有沟通平台上搭建ChatOps聊天机器人,将运维工程师从重复繁琐的工作中解放出来。更进一步,结合语音识别功能,呼出式的智能小助手也是可以畅想一下的啦!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答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的相关容器和服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值