前言
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可以退出。
安裝過程出現問題,請參考