当前位置: 首页>编程语言>正文

jenkins容器挂载 jenkins容器化

Jenkins技术实战

1、Jenkins技术

**目标:**Jenkins容器化搭建,结合Pytest自动化执行生成Allure报告,发送邮件

流程

  • 1、搭建jenkins环境
  • 镜像:
  • 容器操作
  • 1、官方镜像 比较干净 docker pull jenkins
  • 2、公司自己的镜像仓库:阿里云仓库里面有:
  • python 3.6.8解释器
  • git
  • allure+pytest等常用的第三库

  • 方案:docker容器技术
新建挂载目录
 #在宿主机的一个目录下创建一个目录,用于挂载目录
 mkdir -p /var/jenkins_node
 #给一个权限--chmod 777 (0111)可读可写可执行  wrx
 chmod 777 /var/jenkins_node
 
 #创建与启动守护式容器---注意容器中的端口使用8080
 docker run -id --name=sqjenkins -p 8080:8080 -v /var/jenkins_node:/var/jenkins_home --restart=always  registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins:v1
  • 2、运行jenkins容器,做相关配置
  • 1、下载需要的插件—选择默认安装就行
  • 2、我们操作需要的一些库需要自行安装
  • allure插件jenkins需要操作allure工具需要的插件
  • gitlab—下次课gitlab课程需要
  • 3、查看下jenkins容器里面有什么?—*进入容器操作*
  • python解释器 3.6
  • allure
  • git
  • pip3 list 查下python3解释器里面有什么库 pip3 install xxxx
  • 4、jenkins全局环境变量配置
  • JAVA_HOME
  • git
  • allure
  • 3、验证检查python运行环境
  • 检查:pytest指令是否可以直接运行
#1- 确认环境里有没有pytest
 whereis pytest
 #2- 在/opt/python3/bin  是可以运行的
 #3- 希望在任意路径都可以执行pytest
 #只要你的应用在/usr/bin就可以在任意路径运行
 #软连接:你只要运行这个命令,我自己就会到它的安装路径去找!
 以root权限进入容器
 docker exec -uroot  -it c5 /bin/bash
 
 ln -s 源应用安装路径  执行路径
  • 4、新建jenkins工程–构建执行自动化脚本
  • 1、点击构建–在jenkins_home/workspace/有一个工程目录
  • 2、因为现在没有学到git操作–只能半自动化,手动把项目代码直接通过xftp直接传递到/var/jenkins_node/workspace/songqin-21210802
  • 3、在构建配置里–去写shell脚本 执行项目自动化运行!
#验证是否可以运行!
 cd Delivery_System-0716/test_case
 pytest -s
 #报错了
 PermissionError: [Errno 13] Permission denied: '/var/jenkins_home/workspace/songqin-21210802/Delivery_System-0716/logs/autoProjext-202108021326.log'
 
 #解决
 chmod -R 777 /var/jenkins_home/workspace/songqin-21210802/Delivery_System-0716
  • 5、jenkins执行完有allure报告
  • 在构建配置里去设置一个构建后操作
  • 构建后 allure指令去操作报告所存放文件的路径生成报告!
  • 6、执行完之后有邮件,邮件里有报告!
  • 所有的代码或第三方工具操作邮箱发邮件—使用的授权码。不是登录密码
SMTP Port
 #1-虚拟机的liunx 可以使用 25
 #2- 阿里云的服务器,一定要使用465,而且勾上后面的ssl
 #在阿里云安全策略组开放这个465
  • 1、检查有没有邮件的插件
  • 2、测试下邮件的基本设置是否可以通
  • 3、构建操作后,直接发送邮件
  • 总结
  • 1、代码是手动放进去,
  • 2、jenkins也是手动构建
  • 扩展-后面的项目实战课程
  • pipeline脚本语法(推荐使用)
  • 控制机
  • 执行机–node 节点
  • jenkins分布式
  • jenkins流水线
  • 2、Jenkins搭建环境教程

1、持续集成的概述

CI—持续集成

CD—持续交付

2、Jenkins简介

一个开源的框架–需要操做什么流程,下载对应的插件

3、Jenkins环境搭建与启动

#1- 下载镜像:
#方案一:
1- 搜索  docker search jenkins---最新版本的
2- 在这个镜像的创建的容器里需要搭建python环境(一系列库)
apt指令安装

#方案二:可以从一个指定的下载源的镜像拉取就行--前提是已经打包好这个镜像---(jenkins+python3+pytest)
#阿里云-公共仓库  
docker pull 镜像

docker pull  registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins

#2- 查看镜像---静态的模板
#镜像--容器的模板--打包好的---静态的概念--使用的时候请创建容器docker images

#3- 创建容器
#守护式---  退出容器的终端,不会exit  docker run -id xxxx

#做目录挂载
jenkins 做很多的插件安装--以及其他设置

#在宿主机的一个目录下创建一个目录,用于挂载目录
mkdir -p /var/jenkins_node
#给一个权限--chmod 777 (0111)可读可写可执行  wrx
chmod 777 /var/jenkins_node

#4- 创建与启动守护式容器---注意容器中的端口使用8080
docker run -id --name=sqjenkins -p 8080:8080 -v /var/jenkins_node:/var/jenkins_home registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins

#提升技巧
#容器的配置文件修改对应的端口号---修改完请重启容器
/var/lib/docker/containers/容器的id/hostconfig.json


#5- 查看容器是否启动
docker ps -a
#6- 查看宿主机ip
ifconfig    

#7- windows机器访问
http://宿主机ip:7070/

#8- 获取管理员密码
docker logs sqjenkins


#Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

afc945eb00114bc3a7cdaa42149dd66c #管理员密码

#This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

#9-或者宿主机里的/var/jenkins_node/secrets

cat /var/jenkins_node/secrets/initialAdminPassword#该指令也可以获取

4、Jenkins 插件下载

#需要安装2个插件
gitlab  gitlab HOOK
allure
#注意修改下载源  --插件--高级设置

访问ip:8080进入jenkins

安装推荐插件,中间可能有的插件安装失败,不用管它。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载,第1张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_02,第2张

创建用户名和密码,保存并完成,输入admin,密码admin ,保存并完成,开始jenkins。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_03,第3张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_04,第4张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_05,第5张

进入插件管理,下载并安装需要的插件,完成后重启jenkin服务。

安装插件gitlab,gitlab hook,allure

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_06,第6张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_07,第7张

搜索gitlab,allure,选择直接安装。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_08,第8张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_09,第9张

重启docker镜像

docker ps -a

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载_10,第10张

docker restart fef91a3db6d2(容器id)

5、Jenkins 全局工具设置-直接按给的填写即可

#需要设置全局
jdk
git
allure

重新进入jenkins,配置JDK丶git丶allure路径,直接按给的填写即可。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_docker_11,第11张

JAVA_HOME路径/usr/local/openjdk-8

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_docker_12,第12张

git路径/usr/bin/git

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_docker_13,第13张

allure路径/opt/allure-2.13.5

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_14,第14张

6、Jenkins 邮件功能测试

#邮件发送邮箱账号    
songqin_xintian@163.com  
#授权码(注意,不是邮箱密码)所有第三方操作邮件都需要这个授权码
WYMBWTZSUEJQTYGZ

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_15,第15张

配置管理员邮箱地址,发送人邮箱。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_docker_16,第16张

发送邮箱配置,邮箱名称songqin_xintian@163.com授权码为WYMBWTZSUEJQTYGZ

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_17,第17张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_18,第18张

测试成功,保存设置。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_19,第19张

7、Python环境验证

#在容器里输入  python3
#查看python环境的安装库
pip3 list

8、Pytest框架环境验证

### 进入docker里加pytest软连接
#管理员进入容器
docker exec -uroot -it sqjenkins /bin/bash
#加pytest软连接
ln -s /opt/python3/bin/pytest /usr/bin/pytest

#软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。
#具体用法是:ln -s 源文件 目标文件。

#当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。

使用jenkins实现自动化测试

#目前方案没有gitlab,后续采用该方案
#1- 先把项目的自动化脚本文件夹放到--宿主机与容器挂载的目录下
#使用xftp工具,放到--宿主机与容器挂载的目录下,容器下查看下
cd /var/jenkins_nome
ls
#2- jenkins创建工程
#1- 新建任务
#2- 构建一个自由风格的软件项目
#3- 进入工程--点击配置
#4- 选择构建--操作shell  执行pytest  运行脚本
#5- 增加邮件--构建后操作

新建工程并配置选项。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载_20,第20张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_21,第21张

2.项目配置

在完成系统设置后,还需要给需要构建的项目进行邮件配置。

选择配置构建后操作模块

进入系统配置页面后,点击上方的构建后操作选项,配置内容如下:

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_22,第22张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_23,第23张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载_24,第24张

添加邮件内容模板

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_docker_25,第25张

[object Object]                                                        本邮件由系统自动发出,无需回复!                          各位同事,大家好,以下为${PROJECT_NAME }项目构建信息

先把Tirrgers右上角关闭掉,然后新增always,可以选择add增加你要发送的人员列表。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_26,第26张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_27,第27张

最后保存,然后构建,构建成功后邮箱收到邮件。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_28,第28张

10、Jenkins 实现构建

配置pytest命令,生成allure报告。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_29,第29张

#!/bin/bash
rm -rf allure-results
cd Delivery_System/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
exit 0

选择构建后操作allure Report

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_30,第30张

构建–增加构建步骤–执行sh命令(根据需要进行选择);构建后操作–选择Allure Report.

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载_31,第31张

保存,点击构建。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_32,第32张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins容器挂载_33,第33张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_运维_34,第34张


3、常见问题解决方案

1、解决首次进入Jenkins页面慢的问题

安装好Jenkins之后,在浏览器地址栏里输入 http://localhost:8080 准备进入Jenkins的后台管理系统,这时页面一直卡在那里不动了,页面一直显示

Please wait while Jenkins is getting ready to work … Your browser will reload automatically when Jenkins is ready.

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_35,第35张

出现这个情况时,是因为Jenkins的默认更新镜像用的国外的镜像,把更新镜像改成国内的即可。 首先打开Jenkins的安装目录, 比如我是安装在 D:\Program Files (x86)\Jenkins 这个目录,打开这个目录,然后打开hudson.model.UpdateCenter.xml 这个配置文件,

将
https://updates.jenkins.io/update-center.json
修改成
http://mirror.xmission.com/jenkins/updates/update-center.json,

然后打开windows服务管理器,重启Jenkins服务,再重新刷新Jenkins启动页面即可。

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_36,第36张

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_37,第37张

上面是配置文件修改前与修改后的对比图。


2、本机安装了Jenkins,但是安装插件时一直失败

#本机安装了Jenkins,但是安装插件时一直失败。更改升级站点也不生效,究其原因是因为default.json中插件下载地址还https://updates.jenkins.io,升级站点设置未生效。

#需要操作两个步骤

#1.进入 Manage Jenkins -》 Manage Plugin -> Advanced 最下面有 Update Site 设置为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3、jenkins实现allure报告添加环境配置

问题现象:

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_38,第38张

解决方案

在工程的根目录下面新建文件environment.properties

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_jenkins_39,第39张

执行脚本

#!/bin/bash
rm -rf allure-results
cd /var/jenkins_home/DeliverySystem/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
cp /var/jenkins_home/DeliverySystem/environment.properties ${WORKSPACE}/allure-results/environment.properties
exit 0

jenkins容器挂载 jenkins容器化,jenkins容器挂载 jenkins容器化_Jenkins_40,第40张



https://www.xamrdz.com/lan/5sz1939574.html

相关文章: