Mattermost 是一個開源、可私有化部署的在線通訊平臺,可以和Github、Jira、Jenkins、Gitlab等做集成,所以也可以作爲 ChatOps 的一種實現方式。
很早之前爲開源項目 boat-house 做的一個教程,今天偶爾翻筆記的時候找了出來,在這裏也分享一下。
部署
使用docker快速部署
## 默認端口是 8065
docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview
配置
- 初始化
輸入郵箱地址,用戶名,及登錄密碼,默認第一個用戶的是系統管理員
選擇“Create a new team” >> 輸入team的名字
輸入或者默認當前是後續team的鏈接地址,點擊 Finish
-
本地配置
在左上角點擊用戶名旁邊的三道槓,點擊“Account Settings”,點擊“Display”,點擊“Language”,選擇語言爲“中文(簡體)”,點擊“Save”
-
進入後臺管理
-
配置網址,把訪問Mattermost的網址輸入進去即可,如果是Azure虛擬機的話可以輸入自己配置的DNS名稱再加端口號
-
配置語言
默認的服務端語言、默認客戶端語言、以及可選的語言(如果只選中文的話,客戶端進入display配置時 將看不到language選項)
客戶端
桌面程序
https://about.mattermost.com/downloads/
收到消息時提醒
Android
https://about.mattermost.com/mattermost-android-app/
使用
-
邀請新用戶
-
創建頻道
可以在公共頻道里面聊天,也可以自己創建私密的私聊頻道
-
聊天
回覆單條留言信息
發送圖片
截圖到聊天窗口,ctrl+enter發送
擴展
Jenkins
https://github.com/mattermost/mattermost-plugin-jenkins
-
在mattermost中進行配置
-
在jenkins中進行配置
安裝mattermost插件,主菜單 >> Manage Jenkins >> 選擇“Mange Plugins” >> Available >> 選擇“Mattermost Notification Plugin” >> 點擊“Install without restart”按鈕
點擊用戶名,進入後點擊左側菜單中的Configure,在Current token中輸入Mattermost生成的私鑰,點擊“Add new token”生成token
- 轉到用戶聊天界面,創建一個頻道“Jenkins-CI-CD”
輸入 /jenkins connect
Hubot 機器人
## 複製git上的文件到本地
sudo apt-get install git
cd /
mkdir hubot
cd hubot
git clone https://github.com/loafoe/hubot-matteruser
創建鏡像
docker build --build-arg hubot_owner=root \
--build-arg hubot_name=pang \
--build-arg hubot_description=pang \
--tag=hubot-matteruser \
創建容器
docker run -it \
--env MATTERMOST_HOST=jasonchen01.southeastasia.cloudapp.azure.com:8065 \
--env MATTERMOST_GROUP=leansoftx \
--env [email protected] \
--env MATTERMOST_PASSWORD=123456 \
--env MATTERMOST_USE_TLS=false \
-p 8080:8080 \
--name hubot-matteruser \
hubot-matteruser
聊天,使用設置好的hubot_name作爲前綴,比如 pany help
Jira
https://github.com/mattermost/mattermost-plugin-jira
第一步:mattermost上開啓jira插件
啓用插件,選擇“true”
複製webhook secret中的文本,組成URL,例如
https://SITEURL/plugins/jira/api/v2/webhook?secret=YB96EBo3lBFfcqTnGItFeSVtTLj0Cy81
第二步:在jira配置webhook
系統 >> 網絡鉤子
輸入名稱、第一步獲取到的URL,並把所有的相關時間勾選上
第三步:在jira上安裝應用程序
在mattermost的聊天框中,輸入/jira install
根據提示在JIRA上進行配置,尤其注意PUBLIC KEY的部分
輸入mattermost站點的地址
再次輸入mattermost站點的地址
應用程序名稱:Mattermost, 應用類型:通用應用程序
輸入客戶關鍵字、客戶名稱、公共關鍵字
第四步:mattermost上接受jira的信息
注:現在web版上登錄
-
/jira connect
-
設置需要接受的項目及信息
最終效果如下,jira上的操作將推送到mattermost中
GitHub
-
訪問 https://github.com/settings/applications/new,填寫
Application name: mattermost
Homepage URL: https://github.com/mattermost/mattermost-plugin-github
Authorization callback URL:https://your-mattermost-url.com/plugins/github/oauth/complete
-
複製對應的數據到對應的框中,“Save”
-
進入你的rep,“settings” >> 點擊"Add webhook" >> 填寫
選擇Let me select individual events
勾選
Issues, Issue comments, Pull requests, Pull request reviews, Pull request review comments, Pushes, Branch or Tag creation, Branch or Tag deletion
- 輸入 /github connect,輸入github賬號和密碼
輸入github 註冊郵箱收到的Verification code
點擊 “Authorize ******”
/github me 顯示當前賬號的信息
/git todo 待完成工作列表