前言

软件开发过程中,基本每天都会被集成一次,也就是说软件每时每刻都在发生变化,如果能在每次发生集成通过自动化构建(包括编译发布自动化测试)来验证,便能尽早地发现集成错误,让团队得以更快地开发内聚软件。而使用 Jenkins 进行软件持续集成能在一定程度上实现以上需求,下面简单介绍window11 系统通过 Tomcat 部署 Jenkins 时所遇到的安装配置运行的问题内容


一、window11 系统基于 Tomcat 部署 Jenkins思路分析

文章内容主要分为以下几大部分
1、安装JDK(Java17)
2、安装Tomcatapachetomcat-9.0.79 –windowsx64.zip)— 此处原本使用的是tomcat10的版本,由于出现404的问题,改为此版本
3、安装Jenkins(Jenkins 2.346.3 LTS),此处可通过msi文件安装,war文件安装
4、安装配置过程中遇到的问题分析
5、tomcat启动Jenkins并构建简单任务

二、JDK、Tomcat、Jenkins的安装与环境配置

1.下载安装JDK 17

(1)JDK下载链接https://www.oracle.com/java/technologies/downloads/#jdk17-windows进入上网址,选择下载window版本的JDK 17,如下图所示下载 x64 Compressed Archive压缩包便可
在这里插入图片描述
(2)这里下载完毕后解压jdk-17_windowsx64_bin.zip到E:JDKjdk-17.0.8_windowsx64_bin(根据自己实际情况安排存放路径即可
在这里插入图片描述
(3)解压本地文件夹后,window搜索框直接搜索环境变量,唤出系统属性菜单配置JDK环境变量新建 JAVA_HOME 环境变量: E:JDKjdk-17.0.8_windowsx64_bin ,并配置到Path上 :%java_home%bin这里配置bin目录下)
在这里插入图片描述
(4)配置环境变量后,win + R 输入cmd 进入window 终端输入javaversion,若提示JDK版本信息与安装的版本信息一致(如下所示),JDK环境便配置成功

C:Users12345>java -version
java version "17.0.8" 2023-07-18 LTS
Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)

2.下载安装TomCat

(1)Tomcat下载链接https://tomcat.apache.org/ ,进入上网址,查看Tomcat版本信息,根据自己实际使用的jdk版本,下载对应的Tomcat版本这里选择的是 apachetomcat-9.0.79 的Tomcat的版本(原本选择的是10.1.12版本的,但后面启动Jenkins时遇到404的问题,就改成了9.0.79 的版本)
在这里插入图片描述
(2)点击进入下载页面,下载对应的包,这里使用的是window11进行的配置,所以下载的是64位的zip压缩包 apachetomcat-9.0.79-windowsx64.zip
在这里插入图片描述
(3)下载完毕后,解压本地文件夹后,更改tomcat压缩包名字tomcat9,window搜索框直接搜索环境变量,唤出系统属性菜单,把Tomcat配置到环境变量里面去。新建环境变量变量名为 CATALINA_HOME,变量值为 E:jenkinstomcat9
在这里插入图片描述
(4) 新建环境变量后,配置到Path上 :%CATALINA_HOME%bin
在这里插入图片描述
(5)如果发现服务”中没有tomcat,打开Tomcat安装包文件夹进入安装目录下的bin目录输入cmd进入终端,并输入 service.bat install 命令,安装服务,要是服务存在忽略步骤
在这里插入图片描述

E:jenkinstomcat9bin>service.bat install

(6)找到 E:jenkinstomcat9bin 目录下的startup.bat文件双击之后最后结果出现如下所示信息,有可能会遇到显示乱码的情况,出现乱码时可通过修改对应的文件解决,后面会细说

[E:jenkinstomcat9webappsROOT]部署已在[31]毫秒内完成
21-Aug-2023 23:46:48.074 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
21-Aug-2023 23:46:48.090 信息 [main] org.apache.catalina.startup.Catalina.start [6803]毫秒后服务器启动
21-Aug-2023 23:46:54.967 信息 [pool-6-thread-23] jenkins.InitReactorRunner$1.onAttained Prepared all plugins
21-Aug-2023 23:46:55.010 信息 [pool-6-thread-19] jenkins.InitReactorRunner$1.onAttained Started all plugins
21-Aug-2023 23:46:55.012 信息 [pool-6-thread-19] jenkins.InitReactorRunner$1.onAttained Augmented all extensions
21-Aug-2023 23:46:55.380 信息 [GitSCM.onLoaded] hudson.plugins.build_timeout.global.GlobalTimeOutConfiguration.load global timeout not set
21-Aug-2023 23:46:55.882 信息 [pool-6-thread-20] jenkins.InitReactorRunner$1.onAttained System config loaded
21-Aug-2023 23:46:55.882 信息 [pool-6-thread-20] jenkins.InitReactorRunner$1.onAttained System config adapted
21-Aug-2023 23:46:55.914 信息 [pool-6-thread-18] jenkins.InitReactorRunner$1.onAttained Loaded all jobs
21-Aug-2023 23:46:55.927 信息 [pool-6-thread-8] jenkins.InitReactorRunner$1.onAttained Configuration for all jobs updated
21-Aug-2023 23:46:55.984 信息 [pool-6-thread-24] jenkins.InitReactorRunner$1.onAttained Completed initialization
21-Aug-2023 23:46:56.018 信息 [Jenkins initialization thread] hudson.lifecycle.Lifecycle.onReady Jenkins is fully up and running

(7)打开浏览器输入 127.0.0.1:8080 显示出汤姆猫网页,即表示安装成功。(8080是默认端口号,如果和其他软件端口冲突,可去配置文件server.xml修改端口号即可
在这里插入图片描述

3.下载安装Jenkins

把Jenkins部署到tomcat的安装启动,这里简单介绍以下两种方法
一、第一种方法为直接下载 window下的安装文件(jenkins.msi)文件,双击安装到前面Tomcat的安装路径 E:jenkinstomcat9webapps 的目录下,具体安装步骤如下所示
(1)Jenkins下载链接:https://www.jenkins.io/download/,进入上网址,选中稳定版本的window系统包,点击下载
在这里插入图片描述
(2)下载完成后会得到一个 jenkins.msi 安装包双击打开安装到Tomcat 的 E:jenkinstomcat10webapps 目录下
在这里插入图片描述
(3)安装 Jenkins 时,建议独立身份安装和运行Jenkins,使用LocalSystem(Windows相当于root),这将授予Jenkins完全访问到你的机器服务权限;使用本地或域用户的Windows服务运行Jenkins,就相对安全得多。要使用本地或域用户运行 Jenkins 服务需要指定用户名和你想用来运行 Jenkins 的密码单击测试凭据以测试你的域凭据,然后单击一步。此处使用的账户是在 window11 系统下重新建立的一个window账户,具体原因可以参照后面的问题1。
在这里插入图片描述
(4)账户域凭据验证成功后,下一步会进入到端口的设定,这里默认使用的端口号是8080(但由于Tomcat默认端口号也是8080,所以这里为了避免冲突,改成了另外一个未被占用端口号:8868),设置端口号后,点击下一步,进入JDK路径设置页,这里选中自己安装的JDK所在路径便可(这里要注意,Jenkins所支持的JDK版本只有 Java11 和 Java17 )
在这里插入图片描述
(5)选择完 JDK路径后,直接点击下一步,到达安装页面,点击安装
在这里插入图片描述
(6)安装完成后,点击 Finish
在这里插入图片描述
(7)安装完成后,可以直接通过浏览器访问 http://127.0.0.1:8868(除了直接通过浏览器访问外,这里可以通过以下tomcat安装路径 E:jenkinstomcat9bin 里的 startup.bat 文件启动,双击打开通过浏览器访问 http://127.0.0.1:8080/Jenkins/ 便可启动Jenkins),访问成功后,会进入到解锁Jenkins页面打开以上路径的文件,复制文件里面内容管理员密码框内,点击继续,进入安装插件页面,这里新手入门直接选择安装推荐插件便可。
在这里插入图片描述
(8)点击安装推荐插件后,进入插件安装页面,等待安装完成便会进入到 Jenkins 创建一个管理员账户的创建页面,这里自己按照个人喜好创建Jenkins账户便可,后续可通过此账户登陆 Jenkins,创建成功后点击保存并完成进入下一步
在这里插入图片描述
(9)创建完账户后便进入到 Jenkins 的URL设置界面,这里可根据自己实际使用情况设定,这里直接采用最简单的 http://127.0.0.1:8868 来实现基本的 Jenkins 运行便可,设置完后保存,进入安装完成界面,点击开始使用 Jenkins
在这里插入图片描述
二、第二种方法为直接下载 Jenkins的 jenkins.war 文件,剪切拷贝到tomcat的 webapps 文件目录下(E:jenkinstomcat9webapps),具体安装步骤如下所示
(1)访问 https://www.jenkins.io/download/,选择下载war文件,将jenkins.war文件拷贝到 E:jenkinstomcat9webapps 目录下
在这里插入图片描述
(2)进入 E:jenkinstomcat9bin文件夹双击 startup.bat 启动tomcat,同时Jenkins会随着服务器一起启动,并且会在 E:jenkinstomcat9webapps 目录下自动创建Jenkins目录
在这里插入图片描述
(3)启动tomcat后,使用浏览器访问 http://127.0.0.1:8080/便可进入tomcat页面,访问 http://127.0.0.1:8080/Jenkins/可进入Jenkins页面,登陆便可部署配置Jenkins
在这里插入图片描述
(4)使用过程中可能会设置到的内容,1、修改Jenkins的端口号,由于tomcat与Jenkins的默认端口号都是8080,所以这里可以更改下Jenkins或者tomcat的端口号,避免冲突;2、tomcat 登陆所需的权限账号密码设置;3、tomcat 运行显示信息乱码;这里不做介绍,后面在讲解安装中遇到的问题时再做进一步分析;4、更改 jenkins 存储路径等

三、创建一个简单的 Jenkins 任务

(1)配置好jenkins后,打开浏览器,进入以下链接 http://127.0.0.1:8868 ,使用管理员账户登陆Jenkins(同样,除了直接通过浏览器访问外,这里还可以通过以下tomcat安装路径 E:jenkinstomcat9bin 里的 startup.bat 文件启动,双击打开,通过浏览器访问 http://127.0.0.1:8080/Jenkins/ 便可启动Jenkins,这里建议都使用这种方式进行下面的操作
在这里插入图片描述
(2)创建一个构建任务
下图所示构建一个简单的Jenkins任务,点击创建任务,在弹出选择任务类型界面选择构建自由风格软件项目,并输入项目名称;进入构建项目菜单,直接切换到Build构建选项选择执行window批处理命令,在输入框里输入python -h,点击保存,进入下一步,点击立即构建,第一构建会生成#1的链接,点击进入链接,单击控制台输出,便可查看到构建日志
在这里插入图片描述
(3)运行 python 测试
创建 test_sample.py测试文件,输入以下练习用代码保存后存放在 Sample task所在目录下(此目录可以通过 Jenkins 的控制台输出查看到具体路径)
在这里插入图片描述

# test_sample.py代码内容如下
# add()函数
def add(a, b):
	return a + b

# 测试add()函数
def test_add():
	assert add(2, 4) == 5

进入 E:jenkinstomcat9bin 目录,双击startup.bat文件运行 Tomcat,浏览器访问http://127.0.0.1:8080/jenkins/,进入Jenkins主页,进入 Jenkins 的 Simple task 首页单击 Configure 构建选项,更改执行窗口批处理命令pytest test_sample.py,保存,点击build new 立即构建 #13 ,点击 #13 进入构建版本信息页面,点击控制台输出,便可查看到pytest运行测试用例生成结果,如下图所示。
在这里插入图片描述
(4)Jenkins 插件安装
在安装 Jenkins 的过程中,选择的是安装默认的插件,若后续需要使用某些插件的功能,这时便需要安装插件了。如下所示,进入 Jenkins 主页,点击右上角的 Manage Jenkins -> 插件管理 -> 此时可以看到插件管理页,在这里我们可以安装、更新卸载插件。
在这里插入图片描述

四、安装与配置Jenkins过程中遇到的问题

问题1:验证Jenkins账户凭据异常

(1)在使用电脑默认账户验证Jenkins账户凭据时弹出异常,” 0x8007052e – Error logging on 用户名/用户名 OA… “,一直无法验证成功。
在这里插入图片描述
分析处理:查看Jenkins安装配置的教程发现概率是由于域用户无法获取到有效的服务登陆凭据,因而这里先尝试用户权限分配添加登陆的账户,再重启Jenkins尝试域账户登陆。第一步:这里使用的系统为window11系统,找不到本地安全策略,这里需要先下载对应本地安全策略,首先创建gpeditenabler.bat文件,输入以下内容并保存:

@echo off 
pushd "%~dp0" 

dir /b %SystemRoot%servicingPackagesMicrosoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt 
dir /b %SystemRoot%servicingPackagesMicrosoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt 

for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i" 
pause

运行了 gpeditenabler.bat 文件,使用win + R 唤出运行终端输入 secpol.msc -> 唤出本地安全策略,把用于登陆Jenkins的账户配置上去。配置步骤下图所示,配置完毕后,重启电脑尝试重新验证用户,到此若是还不能验证通过,便需要进行下一步的操作
在这里插入图片描述
第二步:一般来说完成第一步时问题就被解决了,但当我配置完用户权限分配时重新登陆,还是提示同样的错误,且把电脑自有的账户都配置了个遍都是无法验证通过。后续上网查询了一下,发现window11后,账户都是绑定微软账户的,怀疑是电脑默认的账户达不到域用户的标准,因而这里重新创建了一个本地账户(如下图所示,添加一没有 Microsoft 账户的用户),并把此账户按照第一步配置好,作为服务登陆,再重启Jenkins,输入新建的账户进行验证,此时验证成功。
在这里插入图片描述
Jenkins官方安装配置的教程链接如下:https://www.jenkins.io/doc/book/installing/windows/#invalidservicelogon-credentials

问题2:Tomcat启动失败,点击一直闪退

(2)Tomcat启动失败,点击一直闪退,在按照以上的第一种方法安装好Jenkins后,双击点击 E:jenkinstomcat9binstartup.bat 启动Tomcat时,一直闪退,通过把startup.bat文件拖动到window运行终端运行后,可查看到以下异常信息提示

The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program

分析处理:在检查了Tomcat、JDK和Jenkins的环境变量配置无异常后,发现可以尝试将Tomcat
所在文件夹命名 apache-tomcat-10.1.11-windows-x64 这种冗长的名字更改为tomcat10这样简短的名字解决此问题,更改tomcat文件夹命名后,重新配置环境变量CATALINA_HOME 为 E:jenkinstomcat9 便解决了此问题,但此处在重新运行时又遇到了别的闪退问题,在问题4分析处理

问题3:更改tomcat文件夹的名称遇到程序占用

(3)遇到问题2时可以通过更改tomcat文件名解决闪退的问题,由于此处已经把Jenkins部署到了tomcat,所以在更改tomcat文件夹的名称时会遇到因为程序占用无法更改文件名称的问题。
在这里插入图片描述
分析处理:因为Jenkins一直在运行,所以导致无法更改名称。所以我们需要进入服务里面,把Jenkins服务暂停,暂停Jenkins服务后便可以更改tomcat的文件夹名称了。
在这里插入图片描述

问题4:CATALINA_HOME environment 异常闪退

(4)在更改完tomcat文件夹名称后,虽然不再报 “CATALINA_HOME environment” 的问题,但是双击运行点击 startup.bat 运行还是存在闪退的问题,把startup.bat文件拖动到window终端运行,获取到以下报错信息。

java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina

分析处理:确认了jdk,tomcat,Jenkins等版本无异常后,发现是文件夹里面没有给权限,把tomcat的文件夹都点击一边,弹出权限弹窗点击确认后,再次重新启动便不再闪退
在这里插入图片描述

问题5:更改 Jenkins 执行路径

(5)在遇到问题2时,为了解决运行tomcat闪退的问题,更改了文件夹的名称,但更改了tomcat的文件夹名称后,出现无法再次打开Jenkins服务的问题。
分析处理:分析发现因为Jenkins最开始配置的执行路径变了,导致运行Jenkins出现了错误。当更改了tomcat的文件名时,Jenkins原来配置到tomcat的执行路径便也发生了改变,因而这里我们需要更改Jenkins的执行路径。
第一步:在 E:jenkinstomcat9webapps里 找到Jenkins的配置文件 jenkins.xml打开进入编辑模式,更改执行路径为 “E:jenkinstomcat9webappsjenkins.war

  <executable>E:JDKjdk-17.0.8_windows-x64_binbinjava.exe</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "E:jenkinstomcat9webappsjenkins.war" --httpPort=6688 --webroot="%LocalAppData%Jenkinswar"</arguments>
  <!--

第二步:更改完执行路径还需要更改注册表里Jenkins的路径信息,Win + R 输入 regedit 调出注册表修改注册表Jenkins里面的路径信息
在这里插入图片描述
更改完以上两处的路径信息后,重启电脑,重新启动Jenkins,Jenkins就可以正常打开了。

问题6:修改Tomcat和Jenkins端口

(6)Tomcat和Jenkins端口号冲突,输入http://127.0.0.1:8080/ 进入的是jenkins的页面,而不是Tomcat的页面。
分析处理:使用默认配置安装tomcat和Jenkins时,默认的访问地址都是http://127.0.0.1:8080/,此时便会由于端口号冲突,导致在浏览器输入以上地址都只能访问到Jenkins主页,而无法进入到Tomcat的主页,因而这里的解决办法就是更改它们的端口号,避免冲突,这也是为什么在一开始安装Jenkins时需要手动更改Jenkins的端口号的原因,若安装完成后才发现端口号冲突,便只能通过修改后配置文件进行了。
1、更改Jenkins的配置文件:更改文件 jenkins.xml 里面的端口号,在 E:jenkinstomcat9webapps 里找到Jenkins的配置文件 jenkins.xml ,打开进入编辑模式,更改端口为 “6688”,保存,重启笔记本,使用浏览器访问以下链接 http://127.0.0.1:6688/ 便可进入Jenkins主页。

  <executable>E:JDKjdk-17.0.8_windows-x64_binbinjava.exe</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "E:jenkinstomcat9webappsjenkins.war" --httpPort=6688 --webroot="%LocalAppData%Jenkinswar"</arguments>
  <!--

2、更改Tomcat的配置文件:更改文件 server.xml 里面的端口号,在 E:jenkinstomcat9conf 里找到 Tomcat 的配置文件 server.xml ,打开进入编辑模式,更改端口为 “8800”,保存,重启笔记本,使用浏览器访问以下链接 http://127.0.0.1:8800/ 便可进入 Tomcat 主页。

    <Connector port="8800" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncodeing="UTF-8"
               maxParameterCount="1000"
               />

问题7:点击startup.bat运行Tomcat,显示信息乱码

(7)在安装完成Tomcat后,双击tomcat的startup.bat运行Tomcat时,发现终端显示的信息很多乱码
分析处理:主要原因是由于编解码不一样导致,首先,打开tomcat的E:jenkinstomcat9confserver.xml,给它增加显示编码方式,如下所示,增加了 URIEncodeing=“UTF-8” 的语句
在这里插入图片描述
然后日志编码格式也修改一下,打开tomcat的E:jenkinstomcat9conflogging.properties,如下所示,增加了 java.util.logging.ConsoleHandler.encoding = GBK 语句
在这里插入图片描述
更改完成后,重启tomcat便可解决乱码问题。

问题8:因为在清除过期缓存条目后可用空间仍不足 – 请考虑增加缓存最大空间

(8)在运行tomcat的时候出现tomcat提示缓存空间不足的警告。
分析处理:打开tomcat的E:jenkinstomcat9confcontext.xml,给它增加如下图的语句,并保存重启tomcat。
在这里插入图片描述

问题9:使用浏览器访问Jenkins,网页提示404

(9)刚开始把Jenkins配置到tomcat时,在访问浏览器 http://127.0.0.1:8080/Jenkins/ 时提示404的错误。
在这里插入图片描述
分析处理:此问题主要是由于版本不适配导致,此处最开始搭建的环境版本信息分别为Java17、Tomcat-10.1.7、Jenkins 2.346.3 LTS,这里把Tomcat的版本更换为 Tomcat-9.0.79 后,重新配置Jenkins便解决了此问题。

问题10:创建 Tomcat 管理器账户

浏览器访问 http://127.0.0.1:8080/,点击如图所示的Tomcat主页的管理器时,在登陆Tomcat管理器弹窗提示需要输入账号
在这里插入图片描述
分析处理:当出现输入账号界面时,点击取消会出现以下页面信息,通过提示的信息我们可以知道在第一次登陆tomcat的管理器时需要在tomcat-users.xml 文件里增加登陆账号
在这里插入图片描述
因为我们根据提示,更改 E:jenkinstomcat9conf 里的 tomcat-users.xml 文件,添加以下信息

<role rolename="manager-gui-123"/>
<user username="tomcat" password="s3c34dt" roles="manager-gui-123"/>

添加完信息后的 tomcat-users.xml 文件如下所示
在这里插入图片描述
保存成功后,再次刷新 http://127.0.0.1:8080/ 页面,再次点击登陆管理器,使用以上添加的账户登陆(用户名:tomcat 密码:s3cret),登陆后可进入管理器页面。在这里插入图片描述


五、总结

以上就是本文要讲的内容,本文仅仅简单介绍了在 window 系统下, tomcat + Jenkins 的基本部署方法和简单任务的实现,而 Jenkins 提供的功能远不止于此,通过 Jenkins 结合 git 仓库实现对软件项目的持续集成自动测试感兴趣的可以自行深入研究

原文地址:https://blog.csdn.net/qq_46166916/article/details/132267154

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17559.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注