DevOps平台实践 (4)

试验发送消息

$ curl \'https://oapi.dingtalk.com/robot/send?access_token=5a68888fbecde75b1832ff024d7374e51f2babd33f1078e5311cdbb8e2c00c3a\' \ -H \'Content-Type: application/json\' \ -d \'{"msgtype": "text", "text": { "content": "我就是我, 是不一样的烟火" } }\'

演示过程

流程示意图:

image

安装gitlab plugin

插件中心搜索并安装gitlab,直接安装即可

配置Gitlab

系统管理->系统配置->Gitlab,其中的API Token,需要从下个步骤中获取

image

获取AccessToken

登录gitlab,选择user->Settings->access tokens新建一个访问token

创建自由风格项目

gitlab connection 选择为刚创建的gitlab

源码管理选择Git,填项项目地址

新建一个 Credentials 认证,使用用户名密码方式,配置gitlab的用户和密码

构建触发器选择 Build when a change is pushed to GitLab

生成一个Secret token

保存

到gitlab配置webhook

进入项目下settings->Integrations

URL:

Secret Token 填入在Jenkins端生成的token

Add webhook

test push events会不通过,因为gitlab中无法解析自定义域名

配置host解析

由于我们的Jenkins域名是本地解析,因此需要让gitlab服务可以解析到该域名。两种方式:

在容器内配置hosts

配置coredns的静态解析

hosts { 192.168.136.10 jenkins.luffy.com gitlab.luffy.com fallthrough }

再次test push events,会由于安全设置,报错:Requests to the local network are not allowed

设置gitlab允许向本地网络发送webhook请求

访问 Admin Aera -> Settings -> Network ,展开Outbound requests

Collapse,勾选第一项即可。再次test push events,成功。

image


8. 配置free项目,增加构建步骤,执行shell,将发送钉钉消息的shell保存

提交代码到gitlab仓库,查看构建是否自动执行

Master-Slaves(agent)模式

上面演示的任务,默认都是在master节点执行的,多个任务都在master节点执行,对master节点的性能会造成一定影响,如何将任务分散到不同的节点,做成多slave的方式?

添加slave节点

系统管理 -> 节点管理 -> 新建节点

比如添加192.168.136.12,选择固定节点,保存

远程工作目录/opt/jenkins_jobs

标签为任务选择节点的依据,如192.168.136.12

启动方式选择通过java web启动代理,代理是运行jar包,通过JNLP(是一种允许客户端启动托管在远程Web服务器上的应用程序的协议 )启动连接到master节点服务中

image

执行java命令启动agent服务

## 登录192.168.136.12,下载agent.jar $ wget ## 会提示找不到agent错误,因为没有配置地址解析,由于连接jenkins master会通过50000端口,直接使用cluster-ip $ kubectl -n jenkins get svc #在master节点执行查询cluster-ip地址 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jenkins ClusterIP 10.99.204.208 <none> 8080/TCP,50000/TCP 4h8m ## 再次回到131节点 $ wget 10.99.204.208:8080/jnlpJars/agent.jar $ java -jar agent.jar -jnlpUrl :8080/computer/192.168.136.12/slave-agent.jnlp -secret 4be4d164f861d2830835653567867a1e695b30c320d35eca2be9f5624f8712c8 -workDir "/opt/jenkins_jobs" ... INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping] Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Agent discovery successful Agent address: 10.99.204.208 Agent port: 50000 Identity: e4:46:3a:de:86:24:8e:15:09:13:3d:a7:4e:07:04:37 Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Handshaking Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connecting to 10.99.204.208:50000 Apr 01, 2020 7:03:51 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Trying protocol: JNLP4-connect Apr 01, 2020 7:04:02 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Remote identity confirmed: e4:46:3a:de:86:24:8e:15:09:13:3d:a7:4e:07:04:37 Apr 01, 2020 7:04:03 PM hudson.remoting.jnlp.Main$CuiListener status INFO: Connected

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzffpw.html