热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

逐步分解,一文教会你如何用jenkins+docker实现主从模式

jenkins主从模式想必大家都不陌生,大家在学习过程中为了学习方便都在自己本地搭建了jenkins环境,然后通过javaweb方式实现,

在这里插入图片描述
jenkins 主从模式想必大家都不陌生,大家在学习过程中为了学习方便都在自己本地搭建了 jenkins 环境,然后通过 javaweb 方式实现,对于 docker 下实现主从模式大家好像兴趣挺大。今天就通过这篇文章给大家讲讲怎么玩,希望对大家有帮助。


一、环境准备

准备一台 Linux 服务器(云服务器、自建 Linux 服务器都可以)

在 Linux 服务器上安装 docker

拉个 jenkins 镜像下来,再启动一个 jenkins 容器

docker 中把这个镜像 jenkins/ssh-slave 拉下来(jenkins 提供的专门用来做主从的镜像)

OK 准备工作就做完了


二、准备开工

第一步:docker 开启远程访问,需要开启 2375 端口,这个端口慎重开启(我用的是 centos)

1、打开 docker.service 文件

VIM /usr/lib/systemd/system/docker.service

2、在 docker.service 文件的[Service]下添加如下内容

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

3、重新启动 docker 服务,让 docker 重新读取配置文件

systemctl daemon-reload

systemctl restart docker

4、验证,查看 docker 进程,如果 docker 守护进程在已经监听 2375 的 tcp 端口,就算成功开启了 2375 端口

图片

5、进一步验证,通过其他机子访问 docker 宿主机

sudo docker -H tcp://139.129.130.123:2375 images

上面这个命令相当于直接在 docker 宿主机上执行 docker images 命令,能正确返回就表示没问题

第二步:下载官网镜像(顺便再提一下,不要忘记了)

docker pull jenkins/ssh-slave

第三步:以 jenkins/ssh-slave 为基础打一个有 python3 环境的新镜像

1、创建一个 dockerfile 目录

2、将项目执行依赖的 python 包文件放到 dockerfile 目录下(怎么生成依赖文件不写了,默认你们是高手都会)

requests==2.24.0
openpyxl
ddt
pytest
selenium
pymysql
pyyaml==5.3.1
faker
jsonpath
BeautifulReport
unittestreport
rsa
pytest-html
Appium-Python-Client

3、创建一个名为 sources.list 的文件(名字不能改必须是这个名字),加入如下内容
在 jenkins/ssh-slave 镜像/etc/apt/目录下

deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
sources.list 作用说明:官方提供的 jenkins/ssh-slave 并没有 python,需要安装 python 就要去更新他的安装包,此时如果使用他默认的镜像源会非常慢,因此我们换一个更快的源,将它原来的文件覆盖掉就行了,这里要根据自己的版本号进行修改,我的是 buster 版本,当然你下载后也应该是和我的一样。

4、写 Dockerfile

FROM jenkins/ssh-slave:latest
USER root
WORKDIR /app
ADD requirements.txt /app
ADD sources.list /etc/apt/
RUN echo export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" >> /etc/profile
RUN apt-get -y update && apt-get -y install python3 && apt-get -y install python3-pip && pip3 install -r requirements.txt -i https://pypi.douban.com/simple

5、执行镜像构建命令

docker build -t jenkins/ssh-slave:v2.0 .


第四步:配置 jenkins 从节点

1、进到节点配置页面

manage jenkins—> Slave Node(节点管理)—>ConfigureClouds

图片

2、你将看到如下页面

图片

3、点 Add a new cloud 下拉选择 docker,点完来到如下页面

图片

4、点开 Docker Cloud details 进行配置,点开后页面如下

图片

5、点开 Docker Agent templates,你将看到如下页面

图片

6、点开下图的高级选项

图片

7、高级选项具体配置如下图

在这里插入图片描述

图片

8、配置完成后记得保存,最好是边配置边保存,养成好习惯。

第五步:将 docker slave 绑定到你的 jenkins 任务

1、新建任务,选择自由风格项目

图片

2、限制项目运行节点,选择新建的节点(Labels)

图片

3、配置 Git

图片

4、配置 shell 命令

图片

5、配置测试报告

图片

图片

图片

第六步:构建你的项目

1、开始构建后在你的构建队列那会看到如下图所示

图片

2、构建完成之后,点你的项目,来到这里会有构建记录,点进去可以看构建日志

图片

3、 查看测试报告

在这里插入图片描述

4、 测试报告如下

图片


技术行业要不断地学习,学习肯定不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了!

在这里插入图片描述

最后也为大家准备了一份配套的学习资源,你可以微信扫描下方二维码,免费获取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。



喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!




好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

包装成1年工作经验的测试工程师,我给他的面试前的建议如下

“入职一年,那个被高薪挖来的自动化软件测试被劝退了。”

4个月自学软件测试面进阿里!如何从功能测试转成自动化…我经历了什么

6000元报了培训班,3个月后我成功“骗”进了腾讯大厂,月薪15000

在这里插入图片描述


推荐阅读
author-avatar
乔父系_377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有