hubot

解读ChatOps:开源聊天机器人怎样协助运维?

徘徊边缘 提交于 2020-12-22 04:33:55
转载本文需注明出处:EAII企业架构创新研究院,违者必究。如需加入微信群参与微课堂、架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”。 ChatOps通常是指依靠群组聊天室进行管理运维工作的一种。在ChatOps领域,我是一个新人,通过学习与运用,再回过头来看,对GitHub、Apple这样的一些先行者更是崇拜。 在现在这个概念为王的时代,ChatOps更像是一个“弱建筑”定义,低调不失优雅。希望通过我的分享,和大家一起来发现其生态建设(以我熟悉的Hubot为例)、基本设计,为后续更好的实践提供一个参考。 背景,何为ChatOps? 先看看实验室截图,我在聊天室中通过与某机器人沟通,获取容器云的测试环境的top5资源以及主机健康信息表。 直观的感受就是ChatOps给了一个全新的工作环境,让我们可以在聊天室中,通过聊天的方式,获取想要的反馈。 说到ChatOps,自然会想到DevOps。市场上这两年在“疯狂”的传递着DevOps的理念,那我们有没有考虑过DevOps的核心是什么?有哪些实现分支?又存在一些什么问题?很多人都像我一样,会习惯的去说,DevOps有四大核心,包括技术、组织、流程、文化;实现DevOps可以从CI/CD着手,以自助自动为指导思想;DevOps要落地很难,因为有太多历史债务,有太多规章制度...... 那该怎么正确看待ChatOps呢

chatops

对着背影说爱祢 提交于 2020-05-04 12:18:52
ChatOps是什么? ChatOps, 简单地说,这是一种方法,允许团队以聊天室的方式来协作和管理其基础结构、代码和数据的许多方面。通过使用聊天机器人和脚本,团队可以执行命令、查询信息,并将知识分发到整个组织,而不仅仅是技术团队。 ChatOps是一个协作模型,它帮助将人员、流程、工具和自动化连接到一个透明的对话驱动开发的工作流中。因此,它允许自动化任务和协作,鼓励团队变得透明、工作得更好、更便宜、更快。 ChatOps 带来了很多好处 公开透明。所有的工作消息都在同一个聊天平台中沉淀并公开给所有相关成员,消除沟通壁垒,工作历史有迹可循,团队合作更加顺畅。 上下文共享。减少因工作台切换等对消息的截断,保证消息的完整性,让工作承接有序,各角色,各工具都成为完成工作流中的一环,打造真正流畅的工作体验。 移动友好。只需要在前台与预设好的机器人对话即可完成与后台工具、系统的交互,在移动环境下无需再与众多复杂的工具直接对接,大大提升移动办公的可行性。 DevOps 文化打造。用与机器人对话这种简单的方式降低 DevOps 的接受门槛,让这种自动化办公的理念更容易的扩展到团队的每一个角落。 目前流行的ChatOps 聊天机器人 Hubot(GitHub 的 bot,用 CoffeeScript 和 Node.js 开发) https://hubot.github.com/ Lita(用

how do I fix “/app/scripts/[foo].coffee is using deprecated documentation syntax” in hubot?

假装没事ソ 提交于 2020-01-24 12:45:41
问题 checking the heroku logs for my bot is showing messages like: /app/scripts/tigger.coffee is using deprecated documentation syntax but I can't seem to find what the undeprecated documentation syntax should be ... 回答1: It's normally due to the TomDoc at the top of the files. There's a good example for a correct one here 来源: https://stackoverflow.com/questions/22104525/how-do-i-fix-app-scripts-foo-coffee-is-using-deprecated-documentation-syntax

Is there a way to make Hubot reply to all messages that are not existing commands?

岁酱吖の 提交于 2020-01-16 04:54:20
问题 I'm giving Hubot a first try, and I'm making a dialog script for basic conversation. I have completed quite a few possibilities (I have a lot of questions and keywords working,) but when the user asks or says something Hubot doesn't recognize, it's complete silence. I want to add a default set of answers for Hubot when it can't find an existing command or words (vague replies like " That's interesting " or " Tell me more ".) Is there a way to do this via script? Something like: robot.respond

How to setup Hubot basic permissions?

白昼怎懂夜的黑 提交于 2020-01-02 02:03:27
问题 How do I setup basic user permissions so users can't run commands like "Hubot die" or "Hubot show storage"? I can see there is a script called hubot-auth but that seems to be for implementing it in other scripts and not controlling existing commands. 回答1: There is a small chapter about it in Automation and Monitoring with Hubot book (shameless plug). Excerpt: Assigning Roles Only Admin users can assign roles. You don't have to create a role before assigning. All you have to do is tell Hubot

Hubot matching on multiple tokens per line?

泪湿孤枕 提交于 2019-12-24 15:03:12
问题 How can I match on multiple occurrences of a token in a single message. module.exports = (robot) -> robot.hear /ITEM=(\d+)/, (msg) -> msg.send 'matched='+msg.match I would like to be able to match: blah blah blah ITEM=100 ITEM=200 ITEM=300 blah blah However I only get the first match with above code: match=blah blah blah ITEM=100 ITEM=200 ITEM=300 blah blah,ITEM=100 I can always just take the message and manually parse each line for each item, but it seems that using robot.hear should be able

no_file_data error when using Slack API upload

扶醉桌前 提交于 2019-12-24 10:49:45
问题 I'm getting this error {"ok":false,"error":"no_file_data"} when I try to call the slack API to upload. I already have the specified file in ./log. robot.respond /upload (.*)/i, (res) -> app_name = res.match[1] request = require("request") fs = require("fs") channel_name = res.message.room data = { channels: channel_name, filename: "#{app_name}.txt", file: fs.createReadStream("./log/#{app_name}.txt"), } robot.http("https://slack.com/api/files.upload") .headers(Authorization: 'Bearer slack

Can Hubot Slack bot store sessions

你。 提交于 2019-12-19 10:49:25
问题 I am trying to implement simple slack bot. So I have configured hubot which will take inputs from slack and passing it to my webapp ( django app ) and it will take whatever the response from django-app and will reply to slack. In this process I am trying to store session in django using request.session but that is not reflected in slack . If I am accessing the django-url in browser it is able to store sessions and getting proper response with session. So does the problem lie with slack or my

使用GitHub进行团队合作

懵懂的女人 提交于 2019-12-17 09:28:06
原文: Team Collaboration With GitHub GitHub 已经成为的一切开放源码软件的基石。开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目。除了​​代码托管, GitHub 的主要吸引力是使用它作为一个协作开发工具。在本教程中,让我们来看看一些最有用的GitHub的功能,特别是使团队工作更有效率,更高生产力,非常重要的,好玩的那些功能! GitHub和软件合作 有一件事我觉得非常有用的是,可以将GitHub的维基集成到项目的源代码主线上。 本教程假定您已经熟悉 Git – 开放源码的分布式版本控制系统,由Linux的创世人 Linus Torvalds 在2005年创造的。如果您需要修改或查找有关 Git ,请访问我们以前的 截屏教程 ,和一些 文章 。此外,你应该已经有一个 Github 上的帐户,并做了一些基本的功能,如创建一个存储库,并推送到 GitHub 上。如果没有,可以参照更多以前的 教程 。 在这个世界上的软件项目,不可避免的是,我们必须和一个团队一起工作来交付软件。在本教程中,我们将探索一些软件开发团队最常用的工具。这些工具包括: 添加团队成员 – 组织和合作者 Pull请求 – 发送代码变更和合并 问题跟踪 – Github上的错误记录 分析 – 图形与网络 项目管理 – Trello 与 Pivotal Tracker

GET pull request merge commit sha from pull request number using github api

折月煮酒 提交于 2019-12-12 10:42:55
问题 I'm trying to use the github api (via githubot https://github.com/iangreenleaf/githubot) to GET a pull request merge commit sha from the pull request number. I'm able to get the proper response (example here under "get a single pull request": https://developer.github.com/v3/pulls/) but the merge_commit_sha gives me this error: fatal: bad object 304fc816f33f808080c9c87895eea2d66081d373 When I compare the 2 pages on github I'm seeing both the merge_commit_sha from the commit page but I'm seeing