精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

使用Slack和Docker來(lái)打造你的運(yùn)維機(jī)器人

責(zé)任編輯:editor005

作者:姚洪翻譯

2015-11-03 14:06:50

摘自:dockone

【編者的話】在運(yùn)維領(lǐng)域中一個(gè)比較新鮮也比較有意思的技術(shù)是ChatOps, 即通過(guò)與一個(gè)控制機(jī)器人對(duì)話來(lái)做運(yùn)維工作。因?yàn)槭鞘褂妹钚泄ぞ咦龅募桑?所以機(jī)器人使用的命令與命令行工具里面的一模一樣。

【編者的話】在運(yùn)維領(lǐng)域中一個(gè)比較新鮮也比較有意思的技術(shù)是ChatOps, 即通過(guò)與一個(gè)控制機(jī)器人對(duì)話來(lái)做運(yùn)維工作。在本文中Digia 高級(jí)架構(gòu)師Jussi Nummelin介紹了他在這方面的一些實(shí)踐。

作者介紹:Jussi Nummelin, Digia 高級(jí)架構(gòu)師。Jussi當(dāng)前正在將客戶和內(nèi)部的項(xiàng)目進(jìn)行Dockerizing。他的Twitter帳號(hào)@JNummelin。

ChatOps

近來(lái)有趨勢(shì)將團(tuán)隊(duì)協(xié)作搬到在線消息應(yīng)用上, 例如Slack、Flowdock 或者其它類似工具。一些組織甚至走的更超前,已經(jīng)將他們的一些運(yùn)維工具集成到這些消息應(yīng)用里。 實(shí)際上這項(xiàng)工作比聽起來(lái)簡(jiǎn)單的多,因?yàn)檫@些工具提供了相當(dāng)直白的API和客戶端庫(kù)很方便做集成。當(dāng)我發(fā)現(xiàn)情況如此時(shí)實(shí)在忍不住一試。: )

通過(guò)Slack消息控制Kontena

作為Kontena和 Slack的用戶,我覺得如果能夠使用Slack來(lái)控制我的Kontena grid將會(huì)是非常的酷。優(yōu)點(diǎn)就是運(yùn)維現(xiàn)在對(duì)于整個(gè)團(tuán)隊(duì)來(lái)說(shuō)都是透明的,因?yàn)榕cKontena的通訊都是通過(guò)與一個(gè)cahnnel里面的機(jī)器人對(duì)話來(lái)完成的。與同事一起做調(diào)試也變得十分的簡(jiǎn)單,只需要你們建立一個(gè)私聊的會(huì)話然后邀請(qǐng)機(jī)器人加入就行了。通過(guò)這種方式你們兩人都可以看見與Kontena grid實(shí)時(shí)的控制流。

集成

機(jī)器人是使用Node.js和Slack的Node客戶端寫的。Slack客戶端簡(jiǎn)化了我的工作,因?yàn)樗峁┝藥讉€(gè)簡(jiǎn)單的回調(diào)來(lái)對(duì)進(jìn)來(lái)的消息做反饋。接下來(lái)的一步是解決如何與Kontena做集成。Kontena 本身已經(jīng)有了一個(gè)相當(dāng)好的命令行工具,我真的不想再另外寫一個(gè)選項(xiàng)解析和其它類似的“樣板“工具。所以這個(gè)Node.js APP就直接使用Kontena命令行工具來(lái)集成Kontena grid。由于Slack客戶端使用WebSocket并且機(jī)器人來(lái)管理連接(與Kontena的模型一致), 你就可以在任何地方運(yùn)行它了。我們現(xiàn)在正在我們的Kontena grid中運(yùn)行它。 ;)

與機(jī)器人交互

在Slack上控制機(jī)器人與普通的對(duì)話無(wú)異。只需要邀請(qǐng)機(jī)器人加入你的channel或者給它發(fā)一個(gè)1對(duì)1的消息。

kontenabot: service list

之后機(jī)器人便會(huì)將命令結(jié)果返回。因?yàn)槭鞘褂妹钚泄ぞ咦龅募桑?所以機(jī)器人使用的命令與命令行工具里面的一模一樣。以下是幾個(gè)例子:

  在容器中運(yùn)行機(jī)器人

我們已經(jīng)將機(jī)器人做成了Docker 鏡像, 所以現(xiàn)在你要搭的話也相當(dāng)容易。在Slack上創(chuàng)建一個(gè)新的機(jī)器人集成來(lái)獲得所需的api token。 在命令行上指定所需的token(slack 和kontena都要有)以及其他的選項(xiàng)作為環(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 因?yàn)闇y(cè)試環(huán)境我們的證書是自簽名的。需要注意的一點(diǎn): 在容器里面和slack的配置里面對(duì)機(jī)器人命名要一致。這樣機(jī)器人就知道你是發(fā)消息給一個(gè)特定的bot。ALLOWED_USERS 這個(gè)列表配置組織里哪些用戶被允許控制機(jī)器人。 如果你忽略的話, 任何用戶就都可以控制它。

關(guān)于細(xì)節(jié)請(qǐng)查看我們的GitHub倉(cāng)庫(kù)。 如果你有點(diǎn)子或者找到bug了, 請(qǐng)創(chuàng)建issue和PR, :)a

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 新安县| 华坪县| 临泉县| 贵州省| 揭东县| 都昌县| 新疆| 通化市| 西充县| 宁城县| 桦川县| 星子县| 五华县| 昌乐县| 灌南县| 五峰| 宁陕县| 长寿区| 桂东县| 沁源县| 扎囊县| 沂南县| 屏边| 瑞金市| 云龙县| 永嘉县| 来凤县| 嘉义市| 锡林浩特市| 土默特左旗| 滨州市| 平南县| 祥云县| 安岳县| 曲水县| 荆州市| 湘乡市| 临沂市| 读书| 沐川县| 高阳县|