前言

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. 【转载】KETTLE集群搭建

    一.集群的原理与优缺点 1.1集群的原理 Kettle集群是由一个主carte服务器和多个从carte服务器组成的,类似于master-slave结构,不同的是’master’处理具体任务,只负责任务 ...

  2. heb Daz

    Asatras soi bib Daz! gos la haik ri, dewoa gos mi haik quri. soi Fong d cuup va ti Chusan, imps Dabo ...

  3. SDN 实验室学生们

    SDN实验室系列:https://edu.cnblogs.com/campus/fzu/SdnLab --研究生及本科生们的博客及GitHub链接.欢迎各位大佬招募. 研究生 2018级 姓名 博客地 ...

  4. centos ping www.baidu.com ping: unknown host www.baidu.com

    [root@zabbix ~]# cat /etc/resolv.conf ; generated by /sbin/dhclient-script nameserver 219.141.136.10

  5. [转帖]SAP一句话入门:Human Resource

    SAP一句话入门:Human Resource http://blog.vsharing.com/MilesForce/A621279.html HR这一句话,太简单了:组织.招聘.发工资.任职.考勤 ...

  6. scala mkstring

    如果你想要把集合元素转化为字符串,可能还会添加分隔符,前缀,后缀. Solution 使用mkString方法来打印一个集合内容,下面给一个简单的例子: scala> val a = Array ...

  7. hadoop分布式系统架构详解

    hadoop 简单来说就是用 java写的分布式 ,处理大数据的框架,主要思想是 “分组合并” 思想. 分组:比如 有一个大型数据,那么他就会将这个数据按照算法分成多份,每份存储在 从属主机上,并且在 ...

  8. Linux在shell中进入python敲方向键出现「^[[C^[[D」的解决办法

    安装yum -y install readline-devel,然后在重新编译python

  9. java 静态成员访问

    public class MqConfig { @Getter private static IProducerProcessor callBackProducerRetry; @Getter @Va ...

  10. 5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...