01

jenkins介绍及docker部署



 

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成

 

1、创建网络

docker 持续集成微服务 基于docker的持续集成_系统管理

2、下载并运行 docker:dind镜像

docker 持续集成微服务 基于docker的持续集成_docker_02

创建docker目录,下面创建一个Dockerfile

docker 持续集成微服务 基于docker的持续集成_docker_03

进入docker目录,执行下述命令,根据dockerfile创建一个自己的jenkins镜像

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_04

启动自己的jenkins镜像

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_05

运行后查看容器执行日志

docker 持续集成微服务 基于docker的持续集成_重启_06

复制日志中的这一段,保存起来

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_07

 

在浏览器访问http://ip:8080   ip要替换成你服务器的ip,需要等待大概10分钟的样子,才能进入到初始安装页面

docker 持续集成微服务 基于docker的持续集成_重启_08

docker 持续集成微服务 基于docker的持续集成_重启_09

 

安装插件需要耐心等待,比较耗时,插件安装完后进入下述页面

docker 持续集成微服务 基于docker的持续集成_重启_10

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_11

 

然后点击开始使用jenkins,重启下jenkins,命令是

docker 持续集成微服务 基于docker的持续集成_重启_12

 

02

安装需要的其他插件



 

点菜单系统管理-->插件管理,依次搜索下述插件并安装

allure、Groovy、dingtalk

docker 持续集成微服务 基于docker的持续集成_docker_13

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_14

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_15

 

安装完成后,重启jenkins

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_16

 

03

全局工具配置



 

点菜单系统管理-->全局工具配置

docker 持续集成微服务 基于docker的持续集成_重启_17

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_18

 

04

邮件配置



 

以下以 QQ 邮箱为例,企业中需要和邮箱管理员沟通

 

1、先开启qq邮箱的smtp服务

开启 QQ 邮箱 SMTP 服务,打开 QQ 邮箱进入设置

docker 持续集成微服务 基于docker的持续集成_重启_19

进入帐户

docker 持续集成微服务 基于docker的持续集成_重启_20

开启 SMTP 服务

docker 持续集成微服务 基于docker的持续集成_重启_21

发送验证码到指定号码

docker 持续集成微服务 基于docker的持续集成_docker_22

点击确定,SMTP 服务已开启

docker 持续集成微服务 基于docker的持续集成_重启_23

 

2、qq邮箱凭据配置

进入系统管理-->Manage Credentials

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_24

docker 持续集成微服务 基于docker的持续集成_docker_25

 

3、jenkins邮箱基础配置

进入系统管理-->系统配置,做如下配置

  • 增加系统管理员邮件地址

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_26

 

  • 邮件配置测试,注意这里只是测试

找邮件通知的区域,进行配置及测试

docker 持续集成微服务 基于docker的持续集成_重启_27

点击测试后提示成功,并且邮箱会收到一封邮件,说明邮件发送没有什么问题

 

  • 配置扩展邮箱

该配置将会作为我们jenkins任务执行完成后的邮件模板

找到Extended E-mail Notification区域,做如下配置,注意点高级才能凭据选择

docker 持续集成微服务 基于docker的持续集成_docker_28

docker 持续集成微服务 基于docker的持续集成_docker_29

 

05

git凭据配置



 

进入系统管理-->Manage Credentials,注意这里是你在码云上的用户名和密码

docker 持续集成微服务 基于docker的持续集成_docker_30

 

06

钉钉通知基础配置



 

1、登录钉钉,配置钉钉机器人

参考链接:

https://developers.dingtalk.com/document/robots/custom-robot-access

 

2、jenkins里配置钉钉

进入系统管理-->系统配置,找到钉钉区域,做如下配置

docker 持续集成微服务 基于docker的持续集成_系统管理_31

 

07

节点配置



 

因为我们要执行的是接口自动化,并且我们希望在jenkins slave节点上执行,而不是在jenkins所在的master上执行,因此我们需要配置节点相关的内容

docker 持续集成微服务 基于docker的持续集成_系统管理_32

 

上图中master指的是jenkins所在服务器,用来统筹管理各个任务及配置

slave指的是各个自动化任务执行的机器,也叫作节点

master通过管理节点,及任务中的节点配置将不同的任务分配到不同的设备上执行

 

1、节点配置

打开jenkins的系统管理->全局安全管理页面,进行如下设置并保存

docker 持续集成微服务 基于docker的持续集成_系统管理_33

 

打开jenkins的系统管理->节点管理页面,点击左侧的新建节点

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_34

docker 持续集成微服务 基于docker的持续集成_重启_35

 

节点创建后初始是未连接状态

 

2、docker部署slave节点及连接

我们使用节点是用来完成接口自动化项目的执行,先创建一个目录叫dockepython,其中创建一个Dockerfile文件,内容如下

docker 持续集成微服务 基于docker的持续集成_系统管理_36

 

然后在dockerpython目录下执行下述命令,来创建镜像

docker 持续集成微服务 基于docker的持续集成_系统管理_36

镜像创建成功后,使用下述命令启动节点,

  • http://192.168.0.129:8080 指的是jenkins master的连接地址
  • 229df21ef95e2528db6592b8d3557afe35aad17d0ce2c311ef5475091c8a0bb7 这是在节点管理中点击未连接的节点,可以看到这一串,复制过来

docker 持续集成微服务 基于docker的持续集成_系统管理_36

docker 持续集成微服务 基于docker的持续集成_系统管理_36

 

启动后查看日志,日志出现Connected,说明连接成功

docker 持续集成微服务 基于docker的持续集成_系统管理_36

docker 持续集成微服务 基于docker的持续集成_系统管理_36

 

08

pipeline流水线任务



 

1.创建流水线任务

点击jenkins首页新建任务

docker 持续集成微服务 基于docker的持续集成_系统管理_36

 

2、钉钉通知配置

docker 持续集成微服务 基于docker的持续集成_系统管理_36

 

3、构建触发器配置

构建触发器指的就是什么时候执行该任务,通常自动化测试的任务在晚上0点执行,所以配置如下

docker 持续集成微服务 基于docker的持续集成_系统管理_36

点击保存

 

4、流水线脚本生成

jenkins pipeline脚本基础语法:

中文在线文档:https://www.jenkins.io/zh/doc/book/pipeline/

还有一个:https://www.w3cschool.cn/jenkins/jenkins-qc8a28op.html

 

实际上我们不用手动去编写这样的脚本,我们可以利用jenkins提供的生成功能来做

打开任务后,点击左侧的流水线语法

docker 持续集成微服务 基于docker的持续集成_docker_45

  • 生成节点脚本

docker 持续集成微服务 基于docker的持续集成_docker_46

  • 生成自动化项目拉取脚本

docker 持续集成微服务 基于docker的持续集成_系统管理_36

  • 生成allure报告处理脚本

docker 持续集成微服务 基于docker的持续集成_系统管理_36

  • 生成邮件发送脚本

docker 持续集成微服务 基于docker的持续集成_系统管理_36

  • 填入pipeline脚本,点击保存,然后执行

docker 持续集成微服务 基于docker的持续集成_系统管理_36

docker 持续集成微服务 基于docker的持续集成_docker 持续集成微服务_51