测试Jenkins
环境从0搭建
现在的中高级自动化测试,测试开发工程师等招聘需求上都有写,需要会CI/CD
,你真的会搭建吗?测试CI/CD
环境搭建,常见的环境有两种:
jenkins
gitlab-ci
欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ
成都-阿木木
上一篇文章讲了gitlab-ci
环境搭建,这一篇作为姊妹篇,补充Jenkins
环境搭建专题:
Jenkins是作什么的,此处不再赘述,本专题还是采用docker进行环境搭建,这也是市面上最主流的容器技术,然后指定另外一个docker容器运行测试脚本。
搭建过程如下:
-
选择一台
centos
服务器(内存不小于4G
)安装docker
环境(其他服务器也可以,详情查看docker
官方支持)安装教程 -
安装
docker-compose
安装教程 -
可选操作(修改国内下载镜像源,可以使用阿里云提供的镜像加速服务,不然下载会很慢)修改教程
-
搜索jenkins镜像,使用docker search jenkins搜索jenkins镜像,在列表中有三个镜像:
- jenkins这个版本看官网已经不在维护,所以不要下载
- jenkins/jenkins这个版本亲测可用,如果需要可视化pipline操作,需要安装Blue Ocean插件
- jenkinsci/blueocean这是最新的版本,相比上面一个最大的亮点是可以可视化pipline管道,类似gitlab-ci的管道视图,本次专题使用此版本。
[root@chineseluo ~]# docker search jenkins NAME DESCRIPTION STARS OFFICIAL AUTOMATED jenkins Official Jenkins Docker image 4913 [OK] jenkins/jenkins The leading open source automation server 2220 jenkinsci/blueocean https://jenkins.io/projects/blueocean 564
-
拉取镜像,使用docker pull jenkinsci/blueocean
[root@chineseluo ~]# docker pull jenkinsci/blueocean Using default tag: latest latest: Pulling from jenkinsci/blueocean df20fa9351a1: Already exists 1cb481a13af0: Pull complete f5efbd400588: Pull complete 7fbf3c26ba26: Pull complete 0540047d6c9d: Pull complete 485fd6d432e9: Pull complete 2fc77091a887: Pull complete 95d0dbf9fd7a: Pull complete c913a3090f1e: Pull complete 35d4c7fc44a1: Pull complete 56eda281c994: Pull complete 5b3037357f30: Pull complete 5f3cef00cbcf: Pull complete c3b2457cb5fd: Pull complete a4f7cf2c02f7: Pull complete 2aa9132881ff: Pull complete c9742d779a7a: Pull complete Digest: sha256:7bdd8d9d29edcf6988018c15b5c2a04691d6a7a544149d5588dc5f5509dbe7dc Status: Downloaded newer image for jenkinsci/blueocean:latest docker.io/jenkinsci/blueocean:latest
-
创建桥接网络(平时我们在访问docker服务时候,通常是通过端口映射的方式,如果说服务本身需要在集群内部访问另外一个服务,我们需要通过桥接网络完成)
docker network create jenkins
-
创建两个共享数据存储卷(ps:此处也可以直接使用本地目录映射的方式进行数据卷挂载)一个是用来保存jenkins的数据,一个是存放jenkins所需的docker的TLS证书(没有TLS证书,所有人都可以访问docker)
docker volume create jenkins-docker-certs
docker volume create jenkins-data
-
运行docker:bind容器
docker container run \ --name jenkins-docker \ --rm \ --detach \ --privileged \ --network jenkins \ --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 2376:2376 \ docker:dind
-
运行jenkinsci/blueocean
docker container run \ --name jenkins-blueocean \ --rm \ --detach \ --network jenkins \ --env DOCKER_HOST=tcp://docker:2376 \ --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \ --publish 50000:50000 \ --volume jenkins-data:/var/jenkins_home \ --volume jenkins-docker-certs:/certs/client:ro \ jenkinsci/blueocean
-
容器运行起来的状态:
-
查看管理员密码:
-
先进入jenkinsci/blueocean容器,有两种方式,任选其一:
- 通过jenkinsci/blueocean的id进入:docker exec -it b7f5dfb87651 /bin/bash
- 通过jenkinsci/blueocean的别名name进入:docker exec -it jenkins-blueocean /bin/bash
-
进入容器之后:cat /var/jenkins_home/secrets/initialAdminPassword
-
将超管密码输入到web界面的管理员界面密码输入框中,输入新创建的管理员用户等信息保存
-
-
补充说明:
- 在前面加进行插件下载的时候,我使用了代理,所以可以正常下载,如果没有使用代理,那么你需要更换国内镜像源
- 如果你在进行插件下载时使用了代理,那么当你需要构建项目时,请将代理删除。
gitlab项目demo演示,脚本运行于jenkins这个容器中
使用本地内网的gitlab项目进行测试,我在gitlab-ci的教程中已经说明了gitlab环境的搭建过程,如果有需要请看另外一篇教程中gitlab的搭建:
- 新建一个自由风格的项目
- 配置源码管理,选择Git,配置仓库地址和证书,SSH和HTTP两种方式配置方法不一样,下面介绍:
-
第一种是通过HTTP克隆远程仓库,这种比较简单:
- 使用我们在gitlab-ci教程中新建的仓库地址:
- 配置Jenkins凭据
- 点击构建,选择执行shell,点击保存
- 进入工程,点击立即构建
- 查看工作空间,我们gitlab上的代码文件已经被拉取到本地了
- 查看控制台输出,输出了python test,我这里不执行python run.py文件,是因为jenkins的docker容器中没有python环境,需要的话,可以自行进入docker中安装
-
第二种通过ssh克隆远程仓库,这里面需要配置gitlab的公钥,和jenkins的私钥
-
进入jenkins的docker容器中,生成秘钥
- 使用docker ps查看jenkins容器的ID
-
使用docker exec -it --user root dockerId /bin/bash进入容器
-
进入/root目录,新建一个文件夹ssh_key
-
新建一个id_rsa文件,执行ssh-keygen -t rsa -C “chineseluo”
-
- 在ssh_key目录下生成了两个文件,一个是id_rsa私钥,一个是id_rsa.pub公钥
- 将公钥添加到gitlab的ssh_keys中
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929111911973.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MjE0MTAx,size_16,color_FFFFFF,t_70#pic_center)
- 回到Jenkins任务配置中,添加凭证
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929111945485.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MjE0MTAx,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200929111952790.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MjE0MTAx,size_16,color_FFFFFF,t_70#pic_center)
- 点击构建,查看构建结果、控制台输出、工作空间(WorkSpace)