前言
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可以退出。
安装过程出现问题,请参考