一 chatops的概念在国内虽然有一部分的文章谈过,但不是很普遍,这里牛刀小试,做一个有关chatops的功能。
二 什么是chatops?
chatops表面上就是在一个聊天工具中,发送一条命令给运维机器人bot,然后bot根据我们预定义的操作进行执行,并返回执行结果。至于更深层次的作用,就是将重复性的手工的运维工作自动化了,开发人员、运维人员可以按需执行一些运维操作。说完这些,我们看看今天实验的一些工具和介绍。
2.1 RocketChat:可以把它想象成微信,它依赖于MongoDB。
2.2 hubot:hubot是github出品的一个运维机器人。本质就是一个接收命令消息,执行预定义操作的一个程序。而接收命令消息的这个组件在hubot中被称为adapter,eg:rocketChat的adapter:hubot。市面上已经有很多了。hubot接收命令后如何执行就需要我们来实现了。
2.3 jenkins:不多讲,应该都知道,CICD的神器。
三 本文主题
在RocketChat的聊天窗口命令hubot执行一次jenkins构建任务。
四 安装
我的环境
10.10.0.171 MongoDB、RocketChat Server、Hubot
10.10.0.144 jenkins
4.1 MongoDB:
docker run --name db -d mongo:3.0 --smallfiles
4.2 RocketChat Server:
docker run --name rocketchat -p 80:3000 --env ROOT_URL=http://10.10.0.171 --link db -d rocket.chat
(参考链接:https://hub.docker.com/_/rocket-chat)
4.3 RocketChat web端访问:http://10.10.0.171
(同时可以借助客户端连接工具ROCKET.CHAT工具,该工具可以直接下载。)
首次登陆,我这里创建了一个超级用户fzh42353:
用fzh42353这个用户登陆,重新打开终端注册一个新用户:bot,密码:bot123(此用户便于hubot连接到rocketchat使用),角色权限如下:
五 jenkins安装
docker run --name chat-jenkins -p 8080:8080 -p 500