之前兩個(gè)小文兒跟大家探討了what -- chatops是怎樣一回子事和why -- chatops所帶來的一系列益處芜飘,接下來我們就說說how -- 如何從零開始搭建一個(gè)chatops機(jī)器人恍风。
上圖是top3的三個(gè)opensource的chatbot framework蹦狂,其中HU-BOT是GitHub最早開源的一個(gè)chatbot project,基于coffee script+nodejs編寫朋贬。LITA借鑒了hubot的大部分功能并有一些創(chuàng)新凯楔,基于Ruby編寫。Err是基于python編寫的锦募。
下面我們就開始做一個(gè)簡單的chatops實(shí)踐摆屯,首先要選擇一個(gè)團(tuán)隊(duì)的IM工具,這里我們選擇用slack. 其次選一個(gè)chatbot framework, 由于我個(gè)人對ruby的偏愛糠亩,所以我們選擇LITA.
因?yàn)槲乙话氵x擇在我自己的mac上編碼虐骑,所以我選擇手工安裝,mac一般都自帶的ruby 2.0赎线,所以只需安裝redis(LITA通過redis做持久化)和LITA就可以了廷没。
1.開發(fā)環(huán)境搭建
a. 安裝LITA, 文檔在這里https://docs.lita.io/getting-started/installation/
b. 安裝redis看這里 https://redis.io/download
手動安裝LITA鍵入sudo gem install lita,然后用lita help來驗(yàn)證是否安裝成功氛驮,如果得到如下結(jié)果就說明成功了腕柜。
2. 創(chuàng)建每一個(gè)Lita實(shí)例
lita new helloword?創(chuàng)建最一個(gè)lita實(shí)例
3. 第一個(gè)handler
進(jìn)到helloworld那個(gè)目錄下,創(chuàng)建一個(gè)文件矫废,這個(gè)例子中我們把他命名成hello.rb盏缤, 如下
解釋一下這個(gè)handler, “route(/^sayhi/, :hello)”是lita的一條路由,可以理解成lita的監(jiān)聽規(guī)則蓖扑,lita會用"^sayhi"這個(gè)正擇表達(dá)式去匹配address給lita的消息唉铜,一經(jīng)匹配成功lita就會跑對應(yīng)的方法hello。"response"可以把他理解成chat的上下文切入工具律杠,可以通過response回復(fù)一些信息潭流。
4.然后在lita_config.rb中引入hello.rb
在lita_config.rb中加入一行,require './hello'
接下來就在shell環(huán)境下小試一下牛刀柜去,打開lita_config.rb配置lita的adapter為shell(默認(rèn))
在終端到helloworld目錄下鍵入lita start來啟動lita灰嫉,之后鍵入Lita sayhi來驗(yàn)證我們添加的第一個(gè)功能sayhi. 你可以看到我們給lita一個(gè)sayhi指令,然后lita給我們回復(fù)了“hi, this is our first chatbot, welcome here!”嗓奢,如果你也得到如下結(jié)果的話讼撒,那么恭喜你有了一個(gè)好的開始!
slack做為adapter
首先要在團(tuán)隊(duì)的slack中申請一個(gè)lita的token -- 到https://your_team.slack.com/apps申請lita應(yīng)用,如果你所在的組織沒有審計(jì)slack app使用的話根盒,會很順利的申請到一個(gè)lita钳幅。打開剛剛申請 的lita應(yīng)用,可以看到如下圖所示的api toke
然后回支終端炎滞,到之前創(chuàng)建的helloworld目錄下敢艰,打開lita_config.rb,將adapter設(shè)置為slack并添加token册赛,如下圖所示(請用自己的token來替換下圖的"xxx...")
添加gem"lita-slack"到Gemfile中钠导,通過bundle install命令安裝相關(guān)包之后就是見證奇跡的時(shí)刻了
lita start
確認(rèn)啟動之后,到slack的channel中將剛才我們啟動的lita添加到channel中森瘪,接下來就可以和他對話了
到此我們已經(jīng)創(chuàng)建了第一個(gè)chatbot, 很簡單辈双,對嗎?雖然只提供了一個(gè)簡單的功能柜砾,但是可以無限擴(kuò)展的,這篇小文的目的是給大家一個(gè)簡單的指引换衬,從而可以快速的搭起一個(gè)bot, 至于bot的功能痰驱,我認(rèn)為只要你敢想敢做,是沒有什么不可能的(也來一碗雞湯瞳浦,不過這是事實(shí):))担映。
其實(shí)chatbot是一個(gè)很了不起的的集成工具,要以將任意系統(tǒng)集成到bot中叫潦,這樣就可以實(shí)現(xiàn)多個(gè)系統(tǒng)的自由蝇完,快速的協(xié)作從而提高工作效率。
結(jié)合之前兩篇文章矗蕊,針對chatops已經(jīng)討論了what, why and how, 希望大家有興趣的話可以發(fā)散自己的思維短蜕,把chatops應(yīng)用到工作和生活中。由于最近比較忙傻咖,所以這次更新的比較慢朋魔,不過答應(yīng)大家的事情搞完了,松了口氣卿操!之后會看情況不定期討論一些security或應(yīng)用場景相關(guān)的實(shí)踐警检,大家也可以加我wechat交流。
最后害淤,chatops的世界很多彩絢麗扇雕,相信如果你愿意付出時(shí)間,一定可以做出一個(gè)像jarvis一樣的機(jī)器人來幫你完成大部分的事情窥摄。