Jenkins持续集成部署——Jenkins实战与运维(2)

一、安装 tomacat(在远程机器上)

Tomcat是用来运行zrlog的容器。

(1)解压

将apache-tomcat-9.0.98.tar.gz 上传到/usr/local下。

[root@test ~]# cd /usr/local/
[root@test local]# ls
apache-tomcat-9.0.98.tar.gz  bin  etc  games  include  java  lib  	lib64  libexec  sbin  share  src
[root@test local]# tar -zxvf apache-tomcat-9.0.98.tar.gz 

(2)配置

[root@test local]# mv /usr/local/apache-tomcat-9.0.98 	/usr/local/tomcat
[root@test local]# cd tomcat/
[root@test tomcat]# vi /usr/local/tomcat/conf/tomcat-users.xml 
//配置管理员用户
-->
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="jenkins.com" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
</tomcat-users>
[root@test tomcat]# vi webapps/manager/META-INF/context.xml 
找到 allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
向其中加入我们要使用的网段,修改如下:
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.200.*" />
配置完成后启动:
[root@test tomcat]# cd bin
[root@test bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jdk-17.0.10
Using CLASSPATH:       	/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-	juli.jar
Using CATALINA_OPTS:   
Tomcat started.

(3)验证

登录网址 http://IP:8080

首先,找到"Managing Tomcat",点击"manager webapp",如下图所示:

然后输入tomcat的用户名与密码完成验证,用户名:admin 密码:jenkins.com

完成验证后,成功进入manager平台,说明tomcat各项配置均配置成功。如下图所示:

二、安装 maven(在服务端安装)

(1)解压

将apache-maven-3.8.3-bin.tar.gz上传到/usr/local下,并解压。

[root@jenkins local]# tar -zxvf apache-maven-3.8.3-bin.tar.gz 

(2)验证

[root@jenkins local]# /usr/local/apache-maven-3.8.3/bin/mvn --version
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /usr/local/apache-maven-3.8.3
Java version: 17.0.10, vendor: Oracle Corporation, runtime: /usr/lib/jdk17/jdk-17.0.10
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

(3)配置

点击"Manage Jenkins",点击"Global Tool Configuration",找到"Maven配置",填写Maven相关的文件路径。如下图:

下滑找到 Maven ,点击"新增Maven",按照安装的Maven版本号来填写 Name,此处建议不要自动安装,所以不要勾选"自动安装",然后在 服务器端获取Maven的路径填入MAVEN_HOME ,应用保存即可。如下图:

三、安装插件

(1)安装

Maven Integration plugin 用来创建一个maven的项目。

Deploy to container Plugin 用来将war包,发布到远程去。

(2)重启 Jenkins

[root@jenkins ~]# systemctl restart jenkins

(3)验证

点击"新建ltem",出现"构建一个maven项目",说明安装成功。

四、创建 maven项目

将任务名称填入"输入一个任务名称"下,并选择想要构建的项目类型,这里我们选择"构建一个maven项目",如下图:

配置"源码管理":选择"git"来进行源码管理;将私有的代码仓库的地址填入"Repository URL";此时会出现错误提醒,这是因为我们添加的代码仓库是私有的,想要使用它必须为其添加凭证,点击"添加"。如下图:

如下图所示,"凭证"添加完成之后,在"Credentials"下选择"git",此时可以看到刚才出现的错误提示已经消失了。如下图:

下滑找到"Build"(其功能实质就是使用maven去编译我们的源码并生成包),"Root POM"为"pom.xml";"Goals and options"下填写maven在编译时用到的选项,可留空,但在这里我们填写"clean install -D maven.test.skip=true"这条命令表示在编译之前先清理,跳过测试。如下图:

下滑点击"增加构建后操作步骤"选择"Editable Email Notification",在"Project Recipient List"下添加一个额外的邮箱,注意前后需要使用英文逗号隔开,如下图所示,应用,保存。如下图:

错误:构建时出现错误

Maven编译器插件需要使用与目标版本兼容的Java版本来编译代码。

解决方案:

升级jdk,需先删除以前的jdk 17.0.10,并删除配置的环境变量。

[root@jenkins ~]# yum install -y https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm
[root@jenkins ~]# alternatives --config java

共有 3 个提供"java"的程序。

  选项    命令
-----------------------------------------------
   1           /usr/local/jdk-17.0.10/bin/java
   2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java)
*+ 3           /usr/lib/jvm/jdk-21.0.5-oracle-x64/bin/java

按 Enter 保留当前选项[+],或者键入选项编号:3
[root@jenkins ~]# vi ~/.bash_profile
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.5-oracle-x64
export PATH=$JAVA_HOME/bin:$PATH
[root@jenkins ~]# source ~/.bash_profile
[root@jenkins ~]# java -version
java version "21.0.5" 2024-10-15 LTS
Java(TM) SE Runtime Environment (build 21.0.5+9-LTS-239)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.5+9-LTS-239, mixed mode, sharing)

保存后,再次构建验证问题是否已经得到解决,点击"立即构建"后,查看"控制台输出",如下图:

相关推荐
无所不在的物质1 小时前
Jenkins基础教程
运维·云原生·自动化·jenkins
喝醉酒的小白9 小时前
ElasticSearch 的核心功能
大数据·elasticsearch·jenkins
花姐夫Jun14 小时前
在 CentOS 8 系统上安装 Jenkins 的全过程
linux·centos·jenkins
INFINI Labs14 小时前
Elasticsearch filter context 的使用原理
大数据·elasticsearch·jenkins·filter·querycache
baihb102415 小时前
Jenkins 构建流水线
运维·jenkins
VinciYan1 天前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
jwensh1 天前
【Jenkins】Declarative和Scripted两种脚本模式有什么具体的区别
运维·前端·jenkins
鸭梨山大。2 天前
Jenkins安全部署规范及安全基线
安全·中间件·jenkins
鸭梨山大。2 天前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins