试验发送消息
$ curl \'https://oapi.dingtalk.com/robot/send?access_token=5a68888fbecde75b1832ff024d7374e51f2babd33f1078e5311cdbb8e2c00c3a\' \ -H \'Content-Type: application/json\' \ -d \'{"msgtype": "text", "text": { "content": "我就是我, 是不一样的烟火" } }\' 演示过程流程示意图:
安装gitlab plugin
插件中心搜索并安装gitlab,直接安装即可
配置Gitlab
系统管理->系统配置->Gitlab,其中的API Token,需要从下个步骤中获取
获取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,成功。
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节点服务中
执行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