其他分享
首页 > 其他分享> > Jenkins通过ConfigureCloud添加集群Docker

Jenkins通过ConfigureCloud添加集群Docker

作者:互联网

环境信息

Linux环境

Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019

> cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

Jenkins版本

jenkins需要安装的docker插件

环境说明

CentOs7安装的Docker环境,使用Docker安装的Jenkins服务。

附录

[https://docs.docker.com/engine/install/centos/](Centos7 Docker安装指南)
[https://www.jenkins.io/doc/book/installing/docker/](Jenkins docker安装指南)

配置Docker Cloud节点

注意:需要安装docker-plugin插件噢,不然应该没有这个选项

点击Manage Jenkins功能项后,打开节点管理列表项

点击我们此次的主角吧

相信你那应该有这个Add a new Cloud按钮。添加docker。

会出现图中所示的这样,字段name名称是我这边刚刚手动输入的。

填写你能记住的Name名称吧。

然后点击Docker Cloud details...项,我们配置Dockers的连接地址等信息吧。

这里的docker host url是刚刚我这边手动输入的配置项。这个docker监听地址需要配置下docker守护进程,监听的http端口。
https://docs.docker.com/engine/install/linux-postinstall/#configure-where-the-docker-daemon-listens-for-connections

别忘勾选上启用


这里进行告知 "同时使用daemon.json和systemd单元文件进行配置会冲突导致docker无法启动";但是我这边没有使用systemd单元文件的情况下,在/etc/docker/daemon.json创建个空的文件都会导致docker服务启动报告,属实很奇葩。
最后我这边使用的是systemctl edit docker.service进行配置的守护进程监听的地址。
如果使用的nano编辑器,请进行Ctrl + ^字母建键进行操作保存和退出等操作噢,因为nano没有vim模式区分的操作。
按照docker文档配置完守护进程监听的地址后,我们继续下一步。

其他的参数根据需要自行调节。

接下来,我们点击Docker Agent Templates,添加Jenkins代理使用的Docker镜像。

Docker Image镜像我们去哪找呢?能配置什么呢?
[https://plugins.jenkins.io/docker-plugin/](docker plugin地址),我们可以看到,docker Cloud是由docker plugin插件提供的。所以我们点击打开插件的主页寻找帮助。

看,我们找到关于docker cloud云的创建指南。
提供了三种创建docker代理的方式。这里我们使用 JNLP 代理启动的方式。

配置Docker template


这里的字段都有❓说明信息内容。其实没啥可说的。
根据所需的进行看字段的描述吧。

这里额外说明下Connect method,docker插件提供了三种连接方式。

这里与Docker插件,jenkins代理镜像是有关的。需要注意。当选择不通的连接方式,需要看下是否满足前置要求。


DockerTemplate就是这么配置的。
我对这里的配置项,DockerTemplate就是进行docker run <镜像> <args>各种参数的配置。然后当jenkins需要启动docker容器的时候,会根据你这里配置的模板进行启动。
1(DockerTemplate)>N(DockerContainer);这里的docker容器会根据你配置的容器上限进行限制。

最后点击 Apply 和 Save 就可以了。

查看配置的Docker集群。

如果要查询配置的Docker集群,我们需要去ManageJenkins -> Docker 进行查看。



可以看到我们通过ConfigureCloud创建的名称项。
my_cnblog_docker就是我们刚刚创建出来的。
点击名称进去docker server状态页面。

这里的docker container列出的第一项是我这边的jenkins的大脑,也就是控制端。
因为我这里的jenkins是通过docker启动的。所以肯定会有一项,不然,我能访问jenkins就有鬼了。。。哈哈

关于jenkins任务的建立这里就不贴图了,因为滚动条有点长哈。

新建JenkinsItem -> 选择Pipeline -> 点击OK按钮。
然后配置Pipeline脚本内容。

pipeline {
    agent {
        label 'my_docker' 
    }
    stages {
        stage('Test') {
            steps {
                sh 'java -version'
            }
        }
    }
}

最后,我们 save 之后,点击 立即构建(Build Now)。
就可以在左下角看到构建记录了。

应该可以执行成功。

最后有什么问题在评论区留言讨论吧,共同学习。

常见问题

为什么通过ConfigureCloud配置了Docker集群。但是在管理Jenkins里,打开dockers看节点的数量还是0或者本身呢?

这跟你配置的Docker连接方式有关,本文使用了JNLP的方式通过Docker启动了Jenkins代理。
你可以在上面的steps里末尾加上sleep 10s等待10s后结束,你可以在任务运行的期间,打开所使用的docker服务器,执行docker ps ,应该可以看到有关jenkins/inbound-agent镜像的容器已经运行起来了,任务结束后,docker容器也会自动的stop和rm停止并删除。

JNLP的翻译:
容器只会被传递一个带有正确密码的初始 docker run 命令。而remoting agent会通过网络与master建立连接。因此,代理必须能够通过其地址和端口访问主控。

这句话真实核心而简朴啊。

标签:ConfigureCloud,配置,点击,Jenkins,jenkins,Docker,docker
来源: https://www.cnblogs.com/XingXiaoMeng/p/16685986.html