新聞中心
使用Slack和docker來打造你的運維機器人
作者:翻譯:姚洪 2015-11-03 13:50:21
云計算 近來有趨勢將團隊協(xié)作搬到在線消息應(yīng)用上, 例如Slack、Flowdock 或者其它類似工具。一些組織甚至走的更超前,已經(jīng)將他們的一些運維工具集成到這些消息應(yīng)用里。 實際上這項工作比聽起來簡單的多,因為這些工具提供了相當(dāng)直白的API和客戶端庫很方便做集成。當(dāng)我發(fā)現(xiàn)情況如此時實在忍不住一試。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、東西湖網(wǎng)絡(luò)推廣、微信小程序、東西湖網(wǎng)絡(luò)營銷、東西湖企業(yè)策劃、東西湖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供東西湖建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
【編者的話】在運維領(lǐng)域中一個比較新鮮也比較有意思的技術(shù)是ChatOps, 即通過與一個控制機器人對話來做運維工作。在本文中Digia 高級架構(gòu)師Jussi Nummelin介紹了他在這方面的一些實踐。
作者介紹:Jussi Nummelin, Digia 高級架構(gòu)師。Jussi當(dāng)前正在將客戶和內(nèi)部的項目進(jìn)行Dockerizing。他的Twitter帳號@JNummelin。
ChatOps
近來有趨勢將團隊協(xié)作搬到在線消息應(yīng)用上, 例如Slack、Flowdock 或者其它類似工具。一些組織甚至走的更超前,已經(jīng)將他們的一些運維工具集成到這些消息應(yīng)用里。 實際上這項工作比聽起來簡單的多,因為這些工具提供了相當(dāng)直白的API和客戶端庫很方便做集成。當(dāng)我發(fā)現(xiàn)情況如此時實在忍不住一試。: )
通過Slack消息控制Kontena
作為Kontena和 Slack的用戶,我覺得如果能夠使用Slack來控制我的Kontena grid將會是非常的酷。優(yōu)點就是運維現(xiàn)在對于整個團隊來說都是透明的,因為與Kontena的通訊都是通過與一個cahnnel里面的機器人對話來完成的。與同事一起做調(diào)試也變得十分的簡單,只需要你們建立一個私聊的會話然后邀請機器人加入就行了。通過這種方式你們兩人都可以看見與Kontena grid實時的控制流。
集成
機器人是使用Node.js和Slack的Node客戶端寫的。Slack客戶端簡化了我的工作,因為它提供了幾個簡單的回調(diào)來對進(jìn)來的消息做反饋。接下來的一步是解決如何與Kontena做集成。Kontena 本身已經(jīng)有了一個相當(dāng)好的命令行工具,我真的不想再另外寫一個選項解析和其它類似的“樣板“工具。所以這個Node.js APP就直接使用Kontena命令行工具來集成Kontena grid。由于Slack客戶端使用WebSocket并且機器人來管理連接(與Kontena的模型一致), 你就可以在任何地方運行它了。我們現(xiàn)在正在我們的Kontena grid中運行它。 ????
與機器人交互
在Slack上控制機器人與普通的對話無異。只需要邀請機器人加入你的channel或者給它發(fā)一個1對1的消息。
- kontenabot: service list
之后機器人便會將命令結(jié)果返回。因為是使用命令行工具做的集成, 所以機器人使用的命令與命令行工具里面的一模一樣。以下是幾個例子:
在容器中運行機器人
我們已經(jīng)將機器人做成了Docker 鏡像, 所以現(xiàn)在你要搭的話也相當(dāng)容易。在Slack上創(chuàng)建一個新的機器人集成來獲得所需的api token。 在命令行上指定所需的token(slack 和kontena都要有)以及其他的選項作為環(huán)境變量,然后就搞定!
- docker run -d -e SLACK_TOKEN=xoxb-1243576874-XXXXXXXXXXXXXXXXXXX \
- -e KONTENA_TOKEN=kontena-token -e KONTENA_URL=https://192.168.100.100:8443 \
- -e KONTENA_GRID=my-grid -e SSL_IGNORE_ERRORS=true -e BOT_NAME=kontenabot \
- -e ALLOWED_USERS=user1,user2 --name kontenabot jnummelin/kontena-slack-bot:latest
在上面的例子中我們指定了SSL_IGNORE_ERRORS 因為測試環(huán)境我們的證書是自簽名的。需要注意的一點: 在容器里面和slack的配置里面對機器人命名要一致。這樣機器人就知道你是發(fā)消息給一個特定的bot。ALLOWED_USERS 這個列表配置組織里哪些用戶被允許控制機器人。 如果你忽略的話, 任何用戶就都可以控制它。
關(guān)于細(xì)節(jié)請查看我們的GitHub倉庫。 如果你有點子或者找到bug了, 請創(chuàng)建issue和PR, :)a
網(wǎng)站欄目:使用Slack和Docker來打造你的運維機器人
分享鏈接:http://fisionsoft.com.cn/article/cddpppg.html


咨詢
建站咨詢
