前言

Hubot是由Github开发的开源聊天机器人,基于Node.js采用CoffeeScript编写

可以借助Hubot开发Chatbot来自动化的完成想要一切自动化任务,比如:

-运维自动化(编译部署代码、重启机器,监控服务器运行情况,自动修复Bug等)

-外部服务交互(管理Redmine、集成Jenkins、监视Zabbix等)

-定时获取天气预报

-随机订餐

-聊天机器人等等。

运维自动化

你可以用slack和hubot搭建一个自己的运维机器人,hubot是那个做事情的机器人,而slack是聊天工具,其实也有一种搭配方式是用微信配合hubot。

场景

对于运维人员来说,用ssh登录自己的服务器进行各种操作几乎成了家常便饭。每次开发人员提交代码后,登录服务器执行git pull,或者把数据备份后压缩并下载也成为了日常工作。能不能省掉这些烦琐的步骤,让开发人员自己完成呢?现在好了,你可以用slack和hubot搭建一个自己的运维机器人,再也不用ssh,开发人员只需要在聊天群里对着机器人喊一声,它就乖乖地做事去了,多么省心!

 运行Hubot需要以下软件支持:

Node.js

Redis 默认存贮数据

CoffeeScript

Yeoman

generator-hubot 生成Hubot骨架工程

安装环境要求

安装过程中间遇见了很多坑,最后发现是最新的node要求GCC 4.9.X 之上

参考官网文档: https://nodejs.org/en/blog/release/v9.10.1/

所以安装前要检查GCC版本

gcc -v

参考之前的文档:Linux升级GCC

安装hubot

yum install npm

这时候刚安装完的node版本比较低,只有0.几,先不要着急安装hubot,先把node升级再说。

npm install -g n
n stable
node -v

好了,现在你的node已经升到最高版本,可以开始安装hubot了

npm install -g hubot coffee-script yo generator-hubot

接下来是用root安装的话,这个时候可能会遇到很多权限上的错误,主要原因是它需要对于组有读写权限,所以我用一个普通用户www来执行安装。

su - www
mkdir hubot
cd hubot
yo hubot

安装过程问你一些问题,Owner(拥有者)、Bot name(机器人的名字)、Description(描述你的公司),最后问你安装什么样的adapter,手工输入slack。

[www@test160 hubot]$ yo hubot
_____________________________
/ \
//\ | Extracting input for |
////\ _____ | self-replication process |
//////\ /_____\ \ /
======= |[^_/\_]| /----------------------------
| | _|___@@__|__
+===+/ /// \_\
| |_\ /// HUBOT/\\
|___/\// / \\
\ / +---+
\____/ | |
| //| +===+
\// |xx| ? Owner jiangzuxing
? Bot name xiaojiang
? Description ji ang ke ji you xian gongsi
? Bot adapter slack

如果直接不填回车,缺省安装的hubot,会带上heroku和redis,如果用不到的话,可以卸载掉:(建议还是要按照上面的填,不然可能最后报错)

npm uninstall hubot-heroku-keepalive --save

在hubot目录下的external-scripts.json文件中把有关heroku和redis的两行删掉就行了,否则老是会报几个警告。 然后,再把hubot-scripts.json删掉,目前我们暂时还用不到它:

rm -f hubot-scripts.json

好了,现在总算可以了。用一下看看吧:

./bin/hubot

执行

xiaojiang help
xiaojiang ping

这里的xiaojiang是你在Bot name里面填写的名字,按ctrl+c可以退出。

安装过程出现问题,请参考

FAQ常见问题解答

CetenOS 6.9 搭建hubot运维机器人的更多相关文章

  1. 【搭建Saltstack运维工具】

    目录 所谓Salt 开始搭建 配置接受密钥 salt命令 YAML详解 目标定位字符串 state模块定义主机状态 Salt采集静态信息之GrainsSalt @(Saltstack) *** 所谓S ...

  2. Lnmp搭建zabbix运维监控系统

    使用目的? 在公司项目中需要做一个日志监控,最开始选择的是efk,但是efk的资料相对较少并且之前对这几个产品都没接触过,使用起来难度.于是选择了zabbix作为项目的运维监控系统. zabbix能做 ...

  3. GoldenGate搭建与运维

    GolenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库实时 ...

  4. 开源的运维机器人hubot原理

  5. Centos7搭建ansible运维自动化工具

    1)设置主机名和hosts文件 2)配置阿里云repo源 Wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Ce ...

  6. 鹅厂优文 | 怎样用AI运维

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由 织云平台团队 团队发布在腾讯云+社区 诞生背景 最近这些年,运维行业提出了不少概念,各种各样的"XX运维"可以说 ...

  7. 百度云曲显平:AIOps时代下如何用运维数据系统性地解决运维问题?

    百度云智能运维负责人 曲显平 本文是根据百度云智能运维负责人曲显平10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日<百度云智能运维实践>演讲中的分享内容整理而 ...

  8. 零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  9. 最适合初学者的Linux运维学习教程2018版

    Linux运维工程师是一个新颖岗位,现在非常吃香,目前从行业的角度分析,随着国内软件行业不断发展壮大,越来越多复杂系统应运而生,为了保证系统稳定运行,必须要有足够多的Linux运维工程师.维护是软件生 ...

随机推荐

  1. IntelliJ IDE 常用配置

    一. Intellij IDE 安装与破解 详细安装步骤 二.IntelliJ Maven 配置 查看: 使用IntelliJ IDEA 配置Maven(入门) 三.IntelliJ Tomcat 配 ...

  2. 使用 Emmet 生成 HTML 的语法详解

    生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 doctype.html.head.body 以及 meta 等内容.你只需要输入一个 “!” 就可以生成一个 HTML5 的标准文档 ...

  3. SQLSERVER事务日志已满 the transaction log for database 'xx' is full

    解决办法:清除日志 USE [master] GO ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE D ...

  4. PS滤镜给城市夜空照片添加满天星

    原图 一.新建空白图层. 二.填充黑色(编辑→填充). 三.转换为智能对象. 四.添加杂色(滤镜→杂色→添加杂色). 五.使用高斯模糊(滤镜→模糊→高斯模糊). 六.如果你想再次修改模糊效果,可双击该 ...

  5. js总结:三级联动

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. PAT L2-024 部落

    https://pintia.cn/problem-sets/994805046380707840/problems/994805056736444416 在一个社区里,每个人都有自己的小圈子,还可能 ...

  7. Centos 6.x 升级到 7.x

    Centos6.5跨越大版本升级到Centos7.4 - Linux学习与应用 - CSDN博客https://blog.csdn.net/whbttst/article/details/805348 ...

  8. node exprss-session 和connect-mongo

    let express = require('express'); let session = require('express-session'); let app = new express(); ...

  9. ssh登录

    ssh 用户名@IP地址 -p 端口号 ssh root@127.0.0.1 -p 2222

  10. [转帖]SAP一句话入门:Finacial & Controlling Accounting

    SAP一句话入门:Finacial & Controlling Accounting http://blog.vsharing.com/MilesForce/A621147.html 财务,财 ...