全网最全最细的教程,在docker下部署jenkins,集成allure测试报告,并发送邮件

docker部署jenkins,并集成allure测试报告

一:安装docker

1:检查linux系统的防火墙以及selinux的安全策略
    [root@localhost ~]# systemctl status firewalld

在这里插入图片描述

    如何显示running,则使用命令关闭防火墙: [root@localhost ~]# systemctl stop firewalld  
    [root@localhost ~]# getenforce        Enforing代表强制模式

在这里插入图片描述

2:开启IPv4 转发,将网卡的路由功能开启,使容器能够和linux宿主机进行网络通信
    [root@localhost ~]# sed -i '$a\ net.ipv4.ip_forward=1' /etc/sysctl.conf
    重启网卡:[root@localhost ~]# systemctl restart network
    检查配置是否生效 :[root@localhost ~]# sysctl net.ipv4.ip_forward
        若显示如下,则配置成功

在这里插入图片描述

3:安装需要的系统工具
    [root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

4:添加软件源信息
    [root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5:更新并安装Docker-CE
    [root@localhost ~]# yum makecache fast
    [root@localhost ~]# yum -y install docker-ce

6:启动docker服务,并设置docker 开机自动启动
    [root@localhost ~]# systemctl start docker
    [root@localhost ~]# systemctl enable docker

7:配置docker加速器 :[root@localhost ~]# vim /etc/docker/daemon.json
    {
        "registry-mirrors": [
            "https://kfwkfulq.mirror.aliyuncs.com",
            "https://2lqq34jg.mirror.aliyuncs.com",
            "https://pee6w651.mirror.aliyuncs.com",
            "https://registry.docker-cn.com",
            "http://hub-mirror.c.163.com"
                                             ],
            "dns": ["8.8.8.8","8.8.4.4"]


    }
    保存,退出

8: 配置后重启docker
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl restart docker

9:检查docker是否正常运行
    [root@localhost ~]# systemctl status docker   如下图所示

在这里插入图片描述

二:在docker容器中安装jdk1.8

1:查找JDK 
    [root@localhost ~]# docker search jdk

在这里插入图片描述

2:拉取JDK1.8镜像
    [root@localhost ~]# docker pull kdvolder/jdk8

在这里插入图片描述

3:查看镜像
    [root@localhost ~]# docker images

在这里插入图片描述

4:启动JDK镜像
    [root@localhost ~]# docker run -di --name=jdk1.8 kdvolder/jdk8

在这里插入图片描述

5:查看镜像运行情况
    [root@localhost ~]# docker ps

在这里插入图片描述

6:进入镜像,查看jdk版本
    方法1  退出后  docker ps 进程还在     docker exec -it jdk1.8 /bin/bash
    方法2 退出后    进程也会自动退出       docker attach 镜像id
    查看jdk版本:root@31538e80e0c0:/# java -version

在这里插入图片描述

7:退出镜像
    root@31538e80e0c0:/# exit

在这里插入图片描述

8:停止镜像
    docker stop 镜像id   --> root@31538e80e0c0:/# docker stop 7c0d2599de8

在这里插入图片描述

9:再次启动镜像
    docker start 镜像id   --> [root@localhost ~]# docker start 7c0d2599de8

在这里插入图片描述

三:在docker容器中安装jenkins

1:拉取jenkins镜像文件
    [root@localhost ~]# docker pull  jenkins/jenkins

在这里插入图片描述

2:创建jenkins的挂载目录并且授权
    [root@localhost ~]# mkdir -p /var/jenkins_mount
    [root@localhost ~]# chmod 777 /var/jenkins_mount

3:创建并启动jenkins容器
    [root@localhost  /]# docker run -d -p 9090:8080 -p 9091:50000 -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins

4:查看jenkins是否启动成功,如下图所示
    [root@localhost ~]# docker ps

在这里插入图片描述

5:查看docker容器日志
    [root@localhost ~]# docker logs myjenkins

6:配置镜像加速,进入cd /var/jenkins_mount/ 目录
    [root@localhost ~]#  cd /var/jenkins_mount/
    修改 vi  hudson.model.UpdateCenter.xml里的内容:将 url 修改为 清华大学官方镜像,如下图所示
        url----->  https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

在这里插入图片描述

7:访问jenkinsyemian,输入ip加上端口9090

在这里插入图片描述

8:获取管理员的密码,编辑文件查看,吧密码输入登录中的密码即可
    [root@localhost secrets]# cat /var/jenkins_mount/secrets/initialAdminPassword

在这里插入图片描述

9:到此jenkins就全部安装成功,如图

在这里插入图片描述

四:配置jenkins

1:安装插件
    1:进入系统管理--> 管理插件

在这里插入图片描述

    2:在available中输入以下插件 
        Localization: Chinese (Simplified)   汉化插件
        Subversion      拉取源文件插件,本次讲的是svn,如需git可查看相关资料
         Email Extension     邮件发送插件

在这里插入图片描述

    3:安装完后重启jenkins

2:新建任务
    首页->新建任务->输入任务名->自由风格->确定

在这里插入图片描述

3:源码管理
    在源码管理栏,配置SVN的仓库地址、用户名、密码等信息,实现从SVN上拉取代码

在这里插入图片描述

    配置SVN用户名、密码

在这里插入图片描述

    点击立即构建,检查配置SVN成功;如果配置成功,可以从SVN上拉取代码

在这里插入图片描述

4:构建
    配置构建操作,也就是拉取代码后需要执行的操作。

在这里插入图片描述

5:构建触发器
1:构建触发器的语法:* * * * * (五颗星,中间用空格隔开)
在这里插入图片描述

2:Build periodically:可以配置周期性地构建任务,配置的时间一到就勾选项目。

在这里插入图片描述

    3:Poll SCM:可以实现周期性地检查仓库的代码是否有更新,有更新才构建项目,没更新就不构建。

在这里插入图片描述

6:配置邮件通知
    1:配置邮件通知:配置系统管理员邮件地址   系统管理---->系统配置

在这里插入图片描述

    2:配置 Extended E-mail Notification

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    3:验证邮箱是否配置成功

在这里插入图片描述

7:配置构建后的操作
    1:选择 Editable Email Notification
![在这里插入图片描述](https://img-blog.csdnimg.cn/e11511cfe84441ac93dd35109c60c496.jpg#pic_center)


    2:配置具体信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    默认邮箱文本
        <!DOCTYPE html>    
        <html>    
        <head>    
        <meta charset="UTF-8">    
        <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
        </head>    
            
        <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
            offset="0">    
            <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
                <tr>    
                    本邮件由系统自动发出,无需回复!<br/>            
                    各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
                    <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
                </tr>    
                <tr>    
                    <td><br />    
                    <b><font color="#0B610B">构建信息</font></b>    
                    <hr size="2" width="100%" align="center" /></td>    
                </tr>    
                <tr>    
                    <td>    
                        <ul>    
                            <li>项目名称 : ${PROJECT_NAME}</li>    
                            <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                            <li>触发原因: ${CAUSE}</li>    
                            <li>构建状态: ${BUILD_STATUS}</li>    
                            <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                            <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                            <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li>    
                        </ul>    
        
        <h4><font color="#0B610B">失败用例</font></h4>
        <hr size="2" width="100%" />
        $FAILED_TESTS<br/>
        
        <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
        <hr size="2" width="100%" />
        <ul>
        ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
        </ul>
        详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
        
                    </td>    
                </tr>    
            </table>    
        </body>    
        </html>
        ————————————————

五:配置allure插件

1:安装插件allure
    进入系统管理--> 管理插件-->在available中输入allure插件 ,安装成功后重启jenkins

2:配置jenkins的Allure
    进入系统管理--> 全局工具配置

在这里插入图片描述

3:配置构建后的操作

在这里插入图片描述
在这里插入图片描述

4:测试配置是否成功,在构建配置,再进行构建

在这里插入图片描述

注意1:会出现构建不成功,因为没有安装python3,导致pytest也没用
注意2:在linux配置python3没有用,因为jenkins是在容器中运行的,我们需要在jenkins中配置python3
具体步骤见第六步

六:在jenkins中配置python3

1:进入jenkins内部:进docker容器, 加上-u root 以root用户权限进入容器
    [root@localhost secrets]# docker exec -itu root 容器id /bin/bash

在这里插入图片描述

2:查看当前操作系统 
    root@708c6870ef4e:/# cat /etc/issue
    这里查到的是Debian系统(不是ubuntu, 也不是centos),这里yum是没有的,所以不能用yum安装了,这里用apt-get代替yum先执行更新   apt-get

在这里插入图片描述

3:更新apt-get
    root@708c6870ef4e:/# apt-get update

在这里插入图片描述

4:容器内部安装python3环境
root@cb8e397d5308:/var/jenkins_home# cd /var/jenkins_home/
root@cb8e397d5308:/var/jenkins_home# mkdir python3
root@cb8e397d5308:/var/jenkins_home# cd python3/
root@cb8e397d5308:/var/jenkins_home# apt-get install wget  
root@cb8e397d5308:/var/jenkins_home/python3# wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
root@cb8e397d5308:/var/jenkins_home/python3# tar -xvf Python-3.7.7.tgz
root@cb8e397d5308:/var/jenkins_home/python3# ls
    Python-3.6.8  Python-3.7.7.tgz

root@cb8e397d5308:/var/jenkins_home/python3# cd Python-3.7.7
root@cb8e397d5308:/var/jenkins_home/python3/Python-3.7.7# ./configure --prefix=/var/jenkins_home/python3
    checking build system type... x86_64-pc-linux-gnu
    checking host system type... x86_64-pc-linux-gnu
    ...
    configure: error: in `/var/jenkins_home/python3/Python-3.6.8':configure: error: no acceptable C compiler found in $PATHSee `config.log' for more details

    执行时会报错,因为缺少gcc相关依赖包

5:apt-get安装依赖包:使用apt-get代替yum安装相关依赖包
    apt-get -y install gcc automake autoconf libtool make
    apt-get -y install make*
    apt-get -y install zlib*
    apt-get -y install openssl libssl-dev
    apt-get install sudo

5:make编译安装
    在/var/jenkins_home/python3/Python-3.7.7目录执行make和make install 安装
    ./configure --prefix=/var/jenkins_home/python3 --with-ssl
    make
    make insatll

6:添加软链接
    添加python3软链接   ln -s  /var/jenkins_home/python3/bin/python3.7   /usr/bin/python3
    添加pip3软链接            ln -s  /var/jenkins_home/python3/bin/pip3     /usr/bin/pip3

7:检查环境
    1:检查pip3
    2:检查python
    3:安装所需要的模块

注意:如果构建说pytest找不到,那么可以使用绝对路径
查找绝对路径:which pytest

到这一步,恭喜你。我们就可以发送在jenkins进行构建发送allure报告了

如图:
1:构建结果:
在这里插入图片描述
2:邮件结果
在这里插入图片描述

3:具体测试报告
在这里插入图片描述

如有不明白的地方,可以私信

同时,如果文章中有图片显示不全,可以点击跳转我在幕布中的笔记

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值