CentOS7中使用Hubot和Slack部署运维机器人

hubot安装

 安装npm

yum install -y npm 

要运行自己的Hubot,需要通过生成器生成,首先安装generator-hubot

npm install -g yo generator-hubot 

生成自己的hubot

mkdir myhubot

cd myhubot

yo hubot 

如果是用root安装的话,这个时候可能会遇到很多权限上的错误,主要原因是它需要对于组有读写权限,所以:

chmod -R 777 /root/.config

chmod -R 777 /root/.npm/_locks

chmod -R 777 /root/.npm/_cacache 

简单起见,这里打开了所有权限。

重新 yo hubot

安装完成配置hubot

安装过程中会问你安装什么样的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

OK,开始使用吧

./bin/hubot

执行:

myhubot help

myhubot ping

myhubot help


myhubot ping



连接hubot与slack

在slack上安装好hubot的插件,它会自动生成一个token,把这个token记下来

token

在hubot目录下输入:

HUBOT_SLACK_TOKEN=你的token ./bin/hubot --adapter slack

如果没有报错的话,就可以看到Apps下面有我们建立的myhubot,这时候hubot就启动起来,等待接收命令了。但是由于hubot缺省加入的是slack的#general频道,如果你改掉了频道名字,或者删掉了这个频道的话,你需要重新邀请小机器人进入一个新的频道,否则没法对话。

time

现在你可以在slack的客户端和小机器人对话了,可尝试输入命令:

time

myhubot pug me

myhubot pug me



让hubot执行shell脚本

要让机器人执行shell脚本,我们需要安装:

npm install hubot-script-shellcmd

cp -R node_modules/hubot-script-shellcmd/bash ./ 

修改一下external-scripts.json,添加上以下模块:hubot-script-shellcmd。到此为止,你的external-scripts.json应该长的像这个样子:

external-scripts.json文件内容

接下来,

cd bash/handlers

这里面的helloworld就是个例子,没什么用,可以删掉:

rm -f helloworld

把update改造成如下这样的:

#!/bin/bashcd /your/pathgit pullecho "successfully updated!"exit 0

OK,现在重启一下小机器人,在slack端输入:

myhubot shellcmd update

myhubot shellcmd update

常用脚本使用操作示例

检查当前CPU使用情况

在bash/handlers文件夹下新建一个文件,名字就叫比如说cpu,内容如下:

#!/bin/bash

top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }'

exit 0

然后,你每次只需要在slack里执行:

myhubot shellcmd cpu

myhubot shellcmd cpu

这样就能知道你的服务器当前cpu使用率了,再也不用去服务器端执行top命令,也不用安装任何系统监控软件,然后打开浏览器看结果。是不是很方便呢?当然类似这样的脚本你还可以写很多,就不一一列举了。








---

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 �创业公司里最刻苦的员工 这是Hubot,由Github开发、开源的聊天机器人,湾区很多创业公司也陆续用Hu...
    alucardzhou阅读 11,146评论 0 6
  • 说明本次redis集群安装在rhel6.8 64位机器上,redis版本为3.2.8,redis的gem文件版本为...
    读或写阅读 15,396评论 3 9
  • 描述 npm从以下来源获取配置值,按优先级排序: 命令行标记 在命令行上放置--foo bar设置foo配置参数为...
    竹天亮阅读 44,338评论 0 8
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 11,377评论 2 36
  • 感赏我有个好单位,自由时间接送儿子,下午带儿子到单位上班。 感赏朋友王红中午请我吃饭,虽然没去,但是还是谢谢你的情...
    爱人如己FJ阅读 988评论 0 1