用 slack 和 hubot 搭建運維機器人【ubuntu】

一、安裝nodejs包管理工具npmnode

apt-get  install npm     ------ubuntu 中剛安裝的npm版本比較低,須要進行升級  
npm -g install npm@3.10.7 //升級到指定版本

npm -g install npm //升級到最新版本
 

二、安裝nodejsredis

npm install -g n
n stable  //安裝nodejs的最新穩定版本,也能夠安裝指定版本: n v6.6.0

 

三、安裝hubotshell

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

四、建立配置hubot目錄npm

mkdir /root/hubot
cd /root/hubot
yo hubot
若是使用root用戶安裝,則須要對如下目錄進行受權
chmod g+rwx /root /root/.config /root/.config/configstore
chown -R chown ubuntu /root/.config/configstore
chmod g+rwx /root/hubot chmod -R g+rwx /root/.npm

yo hubot // 若是是root用戶安裝,這步以前須要調整文件和目錄權限.這步安裝時若報錯,能夠嘗試屢次安裝的操做。

安裝hubot,默認會帶上heroku和redis,若是用不到能夠卸載掉:

npm uninstall hubot-heroku-keepalive --save
在目錄下的文件中把有關和的兩行刪掉就好了,不然總是會報幾個警告。
而後,再把刪掉,目前咱們暫時還用不到它:hubotexternal-scripts.jsonherokuredishubot-scripts.jsonrm -f hubot-scripts.json

 五、啓動hubot服務json

如今能夠正式啓動hubot了: ./bin/hubot
試着執行幾個測試命令:
hmbot> help
usage:
history 
exit, \q - close shell and exit
help, \? - print this usage
clear, \c - clear the terminal screen
hmbot> ping

六、鏈接hubot和slackubuntu

1、首先須要在slack 上安裝好hubot的插件,它會自動生成一個token,把這個token記錄下來,輸入:
env HUBOT_SLACK_TOKEN=xoxb-你的token ./bin/hubot --adapter slack

註釋:這時候就啓動起來,等待接收命令了。可是因爲缺省加入的是的頻道,若是你改掉了頻道名字,或者刪掉了這個頻道的話,你須要從新邀請小機器人進入一個新的頻道,不然無法對話。

二、如今能夠在slack客戶端,經過下面的命令和hubot進行對話:
hubot helphubothubotslack#general

 七、讓hubot保持在線bash

可是若是這時候咱們關掉ssh的話,小機器人就掉線了,怎麼辦呢?能夠用nohup的方法讓它留在後臺,也能夠用tmux:
yum install tmux
tmux new -s hubot
在tmux裏執行上面的命令,而後按ctrl+b,而後再按d退出。若是再想進去,能夠執行:
tmux a
-t hubot

八、讓hubot執行shell腳本ssh

     咱們須要小機器人來執行一些shell腳本,因此須要安裝:工具

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

修改一下external-scripts.json,添加上如下模塊:hubot-script-shellcmd。若是到此爲止,你操做的步驟和我基本同樣的話,你的external-scripts.json應該長的像這個樣子:測試

[
  "hubot-diagnostics",
  "hubot-help",
  "hubot-google-images",
  "hubot-google-translate",
  "hubot-pugme",
  "hubot-maps",
  "hubot-rules",
  "hubot-shipit",
  "hubot-script-shellcmd"
]

測試shell腳本:

配置完畢上面的東東,這裏須要重啓下hubot服務:
nohup ./bin/hubot --adapter slack & #執行啓動腳本時,千萬不要進入bin目錄,要在bin目錄的外面執行啓動腳本,不然啓動失敗。
而後在slack客戶端經過以下命令,對hubot說話: @hmbot run ping #//hmbot 爲hubot的申請名稱,run 能夠經過HUBOT_SHELLCMD_KEYWORD配置。

 

 

 附錄hubot腳本:

#!/bin/sh

set -e

npm install
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
export HUBOT_SLACK_TOKEN="token"        #slack上面申請的token
export HUBOT_SHELLCMD_KEYWORD="run"     #修改命令虎符

exec node_modules/.bin/hubot --name "hmbot" "$@"
相關文章
相關標籤/搜索