jenkins作为当前市面上使用率最广泛的持续集成工具,功能强大、操作简单,大家都比较熟悉了。在使用jenkins的过程中,极少的情况下安装单机jenkins作为slave直接进行构建;比较常见的情形,是安装一台jenkins作为master,其他windows或者linux的机子作为slave连接到该master上,由master下发任务构建到不同的slave节点上,如此既可以降低master节点的负载,又似的slave的无限扩展成为可能,从而增强jenkins的执行能力。但是这个方法有个不足之处,就是当构建的任务很多的时候,现有的slave节点可能无法满足构建需求;而当构建任务不多的时候,slave节点的资源又存在浪费。而且,节点的管理都需要在master节点进行注册,也是一项不小的工作。那么,有没有办法既能减少slave节点的维护又能提高jenkins的弹性持续集成能力呢?答案是docker。此处,我们介绍一下单机docker的设置方法,其他基于k8s或者swarm的原理,大同小异。

配置docker服务开启远程访问

vim /etc/docker/daemon.json

然后修改文件内容,添加:

 "hosts": ["tcp://192.168.10.34:2375","unix:///var/run/docker.sock"]

注意把ip换成本机ip。然后重启docker服务

service docker restart

如果上述方法无效,我们换用修改systemd方法:

vim /lib/systemd/system/docker.service

然后修改

把这一行改为:

ExecStart=/usr/bin/dockerd -H fd:// -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock

然后保存修改:

systemctl daemon-reload

重启服务:

service docker restart

docker pull jenkinsci/ssh-slave

配置jenkins

持续集成jenkins的作用_持续集成jenkins_持续集成jenkins

主要填入dockerhost的地址和enable这个docker host。如果我们在开启docker http远程访问的时候启用身份验证的话,就用Server credentials那个地方管理链接的用户名和密码。container cap那个地方,设置jenkins可以同时最大创建的容器个数。

持续集成jenkins_持续集成jenkins_持续集成jenkins的作用

重点说明几个配置:

labels这个字段:用于我们在配置构建任务时选择运行节点时使用

enabled:启用本agent template

name: jenkins创建container的时候其的名字的前缀,后面会跟一个创建时构造的唯一标识

docker image:就是我们上面pull的默认的jenkinsci/ssh-slave,如果大家自己封装了image,写上自己的即可

credentials:访问docker镜像仓库的用户名和密码

instance capacity和remote file system root,一般用不上

用法: 我们选择 只允许运行绑定到这台机器的job,这个配置就是和一般的slave配置一样了

connect method: 我们选择 attach docker container

remove volumes: 我们勾选上,不然删除container后依旧可能占用硬盘空间

pull strategy: 拉取镜像的策略,我们这里选never pull

另外一些构建时用的工具位置、环境变量等,我们在node properties里面配置。有一种方法,就是我们在宿主机上安装公用的工具,比如ant、maven这些,然后通过volume的方式挂载到container里面,这样我们的镜像就不需要安装这些工具了,如此,我们点击CONTAINER SETTINGS展开容器的配置信息,包括CPU、内存、volume等配置,大家根据需要自行设置。

验证

持续集成jenkins_持续集成jenkins的作用_持续集成jenkins

持续集成jenkins_持续集成jenkins_持续集成jenkins的作用

控制台输出里面也能看到相应的执行结果:

而在任务执行完成之后,该container也被jenkins删除,节点当中也看不到该容器。从而实现了有任务时创建容器并执行,任务完成之后删除容器的jenkins弹性持续集成。


创业/副业必备:

本站已持续更新1W+创业副业顶尖课程,涵盖多个领域。

点击查看详情

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。