测试Jenkins环境从0搭建

13 篇文章 2 订阅
1 篇文章 0 订阅

测试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)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值