ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins通过ConfigureCloud添加集群Docker

2022-09-12 16:33:00  阅读:183  来源: 互联网

标签:ConfigureCloud 配置 点击 Jenkins jenkins Docker 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有