Tomcat + Jenkins 之安装与配置(window11)
作者:mmseoamin日期:2023-12-19

Tomcat + Jenkins 之安装与配置

  • 前言
  • 一、window11 系统基于 Tomcat 部署 Jenkins思路分析
  • 二、JDK、Tomcat、Jenkins的安装与环境配置
    • 1.下载安装JDK 17
    • 2.下载安装TomCat
    • 3.下载安装Jenkins
    • 三、创建一个简单的 Jenkins 任务
    • 四、安装与配置Jenkins过程中遇到的问题
      • 问题1:验证Jenkins账户凭据异常
      • 问题2:Tomcat启动失败,点击一直闪退
      • 问题3:更改tomcat文件夹的名称遇到程序占用
      • 问题4:CATALINA_HOME environment 异常闪退
      • 问题5:更改 Jenkins 执行路径
      • 问题6:修改Tomcat和Jenkins端口号
      • 问题7:点击startup.bat运行Tomcat,显示信息乱码
      • 问题8:因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间
      • 问题9:使用浏览器访问Jenkins,网页提示404
      • 问题10:创建 Tomcat 管理器账户
      • 五、总结

        前言

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


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

        此文章的内容主要分为以下几大部分

        1、安装JDK(Java17)

        2、安装Tomcat( apache-tomcat-9.0.79 -windows-x64.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 的压缩包便可

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第1张

        (2)这里下载完毕后解压jdk-17_windows-x64_bin.zip到E:\JDK\jdk-17.0.8_windows-x64_bin(根据自己实际情况安排存放路径即可)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第2张

        (3)解压到本地文件夹后,window搜索框直接搜索环境变量,唤出系统属性菜单,配置JDK环境变量:新建 JAVA_HOME 环境变量: E:\JDK\jdk-17.0.8_windows-x64_bin ,并配置到Path上 :%java_home%bin (这里要配置到bin目录下)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第3张

        (4)配置好环境变量后,win + R 输入cmd 进入window 终端输入:java -version,若提示JDK版本信息与安装的版本信息一致(如下所示),JDK环境便配置成功

        C:\Users\12345>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版本,这里选择的是 apache-tomcat-9.0.79 的Tomcat的版本(原本选择的是10.1.12版本的,但后面启动Jenkins时遇到404的问题,就改成了9.0.79 的版本)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第4张

        (2)点击进入下载页面,下载对应的包,这里使用的是window11进行的配置,所以下载的是64位的zip压缩包 apache-tomcat-9.0.79-windows-x64.zip

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第5张

        (3)下载完毕后,解压到本地文件夹后,更改tomcat压缩包名字为 tomcat9,window搜索框直接搜索环境变量,唤出系统属性菜单,把Tomcat配置到环境变量里面去。新建环境变量,变量名为 CATALINA_HOME,变量值为 E:\jenkins\tomcat9

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第6张

        (4) 新建完环境变量后,配置到Path上 :%CATALINA_HOME%bin

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第7张

        (5)如果发现“服务”中没有tomcat,打开Tomcat安装包的文件夹,进入安装目录下的bin目录,输入cmd进入终端,并输入 service.bat install 命令,安装服务,要是服务已存在可忽略此步骤

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第8张

        E:\jenkins\tomcat9\bin>service.bat install
        

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

        [E:\jenkins\tomcat9\webapps\ROOT]的部署已在[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.onAttained Prepared all plugins
        21-Aug-2023 23:46:55.010 信息 [pool-6-thread-19] jenkins.InitReactorRunner.onAttained Started all plugins
        21-Aug-2023 23:46:55.012 信息 [pool-6-thread-19] jenkins.InitReactorRunner.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.onAttained System config loaded
        21-Aug-2023 23:46:55.882 信息 [pool-6-thread-20] jenkins.InitReactorRunner.onAttained System config adapted
        21-Aug-2023 23:46:55.914 信息 [pool-6-thread-18] jenkins.InitReactorRunner.onAttained Loaded all jobs
        21-Aug-2023 23:46:55.927 信息 [pool-6-thread-8] jenkins.InitReactorRunner.onAttained Configuration for all jobs updated
        21-Aug-2023 23:46:55.984 信息 [pool-6-thread-24] jenkins.InitReactorRunner.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中修改端口号即可)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第9张

        3.下载安装Jenkins

        把Jenkins部署到tomcat的安装启动,这里简单介绍以下两种方法

        一、第一种方法为直接下载 window下的安装文件(jenkins.msi)文件,双击安装到前面Tomcat的安装路径 E:\jenkins\tomcat9\webapps 的目录下,具体安装步骤如下所示。

        (1)Jenkins下载链接:https://www.jenkins.io/download/,进入以上网址,选中稳定版本的window系统包,点击下载

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第10张

        (2)下载完成后会得到一个 jenkins.msi 安装包,双击打开安装到Tomcat 的 E:\jenkins\tomcat10\webapps 目录下

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第11张

        (3)安装 Jenkins 时,建议以独立身份安装和运行Jenkins,使用LocalSystem(Windows相当于root),这将授予Jenkins完全访问到你的机器和服务的权限;使用本地或域用户的Windows服务运行Jenkins,就相对安全得多。要使用本地或域用户运行 Jenkins 服务,需要指定域用户名和你想用来运行 Jenkins 的密码,单击测试凭据以测试你的域凭据,然后单击下一步。此处使用的账户是在 window11 系统下重新建立的一个window账户,具体原因可以参照后面的问题1。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第12张

        (4)账户域凭据验证成功后,下一步会进入到端口的设定,这里默认使用的端口号是8080(但由于Tomcat默认的端口号也是8080,所以这里为了避免冲突,改成了另外一个未被占用的端口号:8868),设置好端口号后,点击下一步,进入JDK路径设置页,这里选中自己安装的JDK所在路径便可(这里要注意,Jenkins所支持的JDK版本只有 Java11 和 Java17 )

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第13张

        (5)选择完 JDK路径后,直接点击下一步,到达安装页面,点击安装

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第14张

        (6)安装完成后,点击 Finish

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第15张

        (7)安装完成后,可以直接通过浏览器访问 http://127.0.0.1:8868(除了直接通过浏览器访问外,这里还可以通过以下tomcat安装路径 E:\jenkins\tomcat9\bin 里的 startup.bat 文件启动,双击打开,通过浏览器访问 http://127.0.0.1:8080/Jenkins/ 便可启动Jenkins),访问成功后,会进入到解锁Jenkins页面,打开以上路径的文件,复制文件里面的内容到管理员密码框内,点击继续,进入安装插件页面,这里新手入门直接选择安装推荐的插件便可。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第16张

        (8)点击安装推荐的插件后,进入插件安装页面,等待安装完成便会进入到 Jenkins 创建一个管理员账户的创建页面,这里自己按照个人喜好创建Jenkins账户便可,后续可通过此账户登陆 Jenkins,创建成功后点击保存并完成进入下一步

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第17张

        (9)创建完账户后便进入到 Jenkins 的URL设置界面,这里可根据自己实际使用情况设定,这里直接采用最简单的 http://127.0.0.1:8868 来实现基本的 Jenkins 运行便可,设置完后保存,进入安装完成界面,点击开始使用 Jenkins

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第18张

        二、第二种方法为直接下载 Jenkins的 jenkins.war 文件,剪切拷贝到tomcat的 webapps 文件目录下(E:\jenkins\tomcat9\webapps),具体安装步骤如下所示。

        (1)访问 https://www.jenkins.io/download/,选择下载war文件,将jenkins.war文件拷贝到 E:\jenkins\tomcat9\webapps 目录下

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第19张

        (2)进入 E:\jenkins\tomcat9\bin文件夹,双击 startup.bat 启动tomcat,同时Jenkins会随着服务器一起启动,并且会在 E:\jenkins\tomcat9\webapps 目录下自动创建Jenkins目录

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第20张

        (3)启动tomcat后,使用浏览器访问 http://127.0.0.1:8080/便可进入tomcat页面,访问 http://127.0.0.1:8080/Jenkins/可进入Jenkins页面,登陆便可部署配置Jenkins

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第21张

        (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:\jenkins\tomcat9\bin 里的 startup.bat 文件启动,双击打开,通过浏览器访问 http://127.0.0.1:8080/Jenkins/ 便可启动Jenkins,这里建议都使用这种方式进行下面的操作)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第22张

        (2)创建一个构建任务

        如下图所示,构建一个简单的Jenkins任务,点击创建任务,在弹出的选择任务类型界面上选择构建自由风格的软件项目,并输入项目名称;进入构建项目菜单,直接切换到Build构建选项,选择执行window批处理命令,在输入框里输入python -h,点击保存,进入下一步,点击立即构建,第一构建会生成#1的链接,点击进入链接,单击控制台输出,便可查看到构建日志

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第23张

        (3)运行 python 测试

        创建 test_sample.py 的测试文件,输入以下练习用代码,保存后存放在 Sample task所在目录下(此目录可以通过 Jenkins 的控制台输出查看到具体路径)

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第24张

        # test_sample.py的代码内容如下
        # add()函数
        def add(a, b):
        	return a + b
        # 测试add()函数
        def test_add():
        	assert add(2, 4) == 5
        

        进入 E:\jenkins\tomcat9\bin 目录,双击startup.bat文件运行 Tomcat,浏览器访问http://127.0.0.1:8080/jenkins/,进入Jenkins主页,进入 Jenkins 的 Simple task 首页,单击 Configure 构建选项,更改执行窗口批处理命令为 pytest test_sample.py,保存,点击build new 立即构建 #13 ,点击 #13 进入构建版本信息页面,点击控制台输出,便可查看到pytest运行测试用例生成的结果,如下图所示。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第25张

        (4)Jenkins 插件安装

        在安装 Jenkins 的过程中,选择的是安装默认的插件,若后续需要使用某些插件的功能,这时便需要安装插件了。如下所示,进入 Jenkins 主页,点击右上角的 Manage Jenkins -> 插件管理 -> 此时可以看到插件管理页,在这里我们可以安装、更新或卸载插件。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第26张

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

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

        (1)在使用电脑默认账户验证Jenkins账户凭据时弹出异常," 0x8007052e - Error logging on 用户名/用户名 OA… ",一直无法验证成功。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第27张

        分析处理:查看Jenkins安装配置的教程,发现大概率是由于域用户无法获取到有效的服务登陆凭据,因而这里先尝试到用户权限分配添加登陆的账户,再重启Jenkins尝试域账户登陆。第一步:这里使用的系统为window11系统,找不到本地安全策略,这里需要先下载对应的本地安全策略,首先创建gpedit-enabler.bat文件,输入以下内容并保存:

        @echo off 
        pushd "%~dp0" 
        dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt 
        dir /b %SystemRoot%\servicing\Packages\Microsoft-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%\servicing\Packages\%%i" 
        pause
        

        运行了 gpedit-enabler.bat 文件,使用win + R 唤出运行终端输入 secpol.msc -> 唤出本地安全策略,把用于登陆Jenkins的账户配置上去。配置步骤如下图所示,配置完毕后,重启电脑,尝试重新验证域用户,到此若是还不能验证通过,便需要进行下一步的操作。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第28张

        第二步:一般来说完成第一步时问题就被解决了,但当我配置完用户权限分配时重新登陆,还是提示同样的错误,且把电脑自有的账户都配置了个遍都是无法验证通过。后续上网查询了一下,发现window11后,账户都是绑定微软账户的,怀疑是电脑默认的账户达不到域用户的标准,因而这里重新创建了一个本地账户(如下图所示,添加一个没有 Microsoft 账户的用户),并把此账户按照第一步配置好,作为服务登陆,再重启Jenkins,输入新建的账户进行验证,此时验证成功。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第29张

        Jenkins官方安装配置的教程链接如下:https://www.jenkins.io/doc/book/installing/windows/#invalid-service-logon-credentials

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

        (2)Tomcat启动失败,点击一直闪退,在按照以上的第一种方法安装好Jenkins后,双击点击 E:\jenkins\tomcat9\bin\startup.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:\jenkins\tomcat9 便解决了此问题,但此处在重新运行时又遇到了别的闪退问题,在问题4分析处理。

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

        (3)遇到问题2时可以通过更改tomcat文件名解决闪退的问题,由于此处已经把Jenkins部署到了tomcat,所以在更改tomcat文件夹的名称时会遇到因为程序占用无法更改文件名称的问题。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第30张

        分析处理:因为Jenkins一直在运行,所以导致无法更改名称。所以我们需要进入服务里面,把Jenkins服务暂停,暂停Jenkins服务后便可以更改tomcat的文件夹名称了。

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第31张

        问题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的文件夹都点击一边,弹出给权限的弹窗点击确认后,再次重新启动便不再闪退了

        Tomcat + Jenkins 之安装与配置(window11),在这里插入图片描述,第32张

        问题5:更改 Jenkins 执行路径

        (5)在遇到问题2时,为了解决运行tomcat闪退的问题,更改了文件夹的名称,但更改了tomcat的文件夹名称后,出现无法再次打开Jenkins服务的问题。

        分析处理:分析发现因为Jenkins最开始配置的执行路径变了,导致运行Jenkins出现了错误。当更改了tomcat的文件名时,Jenkins原来配置到tomcat的执行路径便也发生了改变,因而这里我们需要更改Jenkins的执行路径。

        第一步:在 E:\jenkins\tomcat9\webapps里 找到Jenkins的配置文件 jenkins.xml ,打开进入编辑模式,更改执行路径为 “E:\jenkins\tomcat9\webapps\jenkins.war”

          E:\JDK\jdk-17.0.8_windows-x64_bin\bin\java.exe
          -Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "E:\jenkins\tomcat9\webapps\jenkins.war" --httpPort=6688 --webroot="%LocalAppData%\Jenkins\war"