一、编译环境====(jenkins服务器)
1.部署maven编译环境(在Jenkins服务器上部署)
1.下载maven
[root@jenkins opt]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[root@jenkins opt]# ll
总用量 563300
-rw-r--r-- 1 root root 9506321 7月 3 2020 apache-maven-3.6.3-bin.tar.gz
2.解压
root@jenkins opt]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
3.查看java版本
[root@jenkins opt]# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
4.添加环境变量
[root@jenkins opt]# vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
5.重载环境变量,测试mvn
[root@jenkins opt]# source /etc/profile
[root@jenkins opt]# mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/apache-maven-3.6.3
Java version: 1.8.0_292, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.21.1.el7.x86_64", arch: "amd64", family: "unix"
2.配置Jenkins+maven
- 配置JDK
系统管理===》全局配置===》JDK
- 配置maven环境变量
系统管理====》系统配置===》环境变量
- 安装maven插件
- 在gitlab上创建新项目
- 将源代码上传到仓库
1.下载远程仓库
[root@web ~]# git clone git@10.0.0.60:root/jenkins-tomcat.git
正克隆到 'jenkins-tomcat'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
接收对象中: 100% (3/3), done.
2.将源代码压缩包传到下载的仓库内并解压
[root@web ~]# rz
[root@web ~]# ll
-rw-r--r-- 1 root root 57688 7月 29 2021 chenyang0910-springboot-master.zip
[root@web ~]# unzip chenyang0910-springboot-master.zip
[root@web ~]# ll
-rw-r--r-- 1 root root 57688 7月 29 2021 chenyang0910-springboot-master.zip
drwxr-xr-x 4 root root 90 4月 15 20:24 springboot
[root@web ~]# mv springboot/ jenkins-tomcat/
[root@web ~]# cd jenkins-tomcat/
[root@web jenkins-tomcat]# ll
总用量 4
-rw-r--r-- 1 root root 23 7月 27 13:57 README.md
drwxr-xr-x 4 root root 90 4月 15 20:24 springboot
3.将源代码上传到远程仓库
[root@web jenkins-tomcat]# git add springboot/
[root@web jenkins-tomcat]# git commit -m 'init' .
[root@web jenkins-tomcat]# git push -u origin master
Counting objects: 31, done.
Compressing objects: 100% (22/22), done.
Writing objects: 100% (30/30), 53.20 KiB | 0 bytes/s, done.
Total 30 (delta 0), reused 0 (delta 0)
To git@10.0.0.60:root/jenkins-tomcat.git
b4f3ae9..a89ee0d master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
- 创建maven仓库(Jenkins服务器)
1.创建maven仓库
[root@jenkins ~]# mkdir -pv /data/software/repository
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/software"
mkdir: 已创建目录 "/data/software/repository"
[root@jenkins ~]# chown jenkins.jenkins /data/software/repository/
2.修改配置文件
[root@jenkins ~]# vim /usr/local/apache-maven-3.6.3/conf/settings.xml
<!--本地仓库-->
<localRepository>/data/software/repository</localRepository>
<mirrors>
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
注意:
相当于把maven阿里云的仓库下载到本地仓库
- 测试maven仓库
注意:mvn clean package 相当于java编译命令
如果还报错:用绝对路径:/usr/local/apache-maven-3.6.3/mvn clean package
选择标签开始构建(第一次编译时间稍长)
如果构建过程中报错:
就能直接构建成功了。这是最简便的方式。事后分析了下造成这种情况:大概是拉取代码分支,代码分支裹了一层目录,所以拉过来就多了一级目录。
如下图构建所示:
[root@jenkins workspace]# cd /var/lib/jenkins/workspace/shanghai-001/springboot/
[root@jenkins springboot]# ll
总用量 24
-rwxr-xr-x 1 jenkins jenkins 10070 7月 30 00:04 mvnw
-rw-r--r-- 1 jenkins jenkins 6608 7月 30 00:04 mvnw.cmd
-rw-r--r-- 1 jenkins jenkins 1664 7月 30 00:04 pom.xml
drwxr-xr-x 4 jenkins jenkins 30 7月 30 00:04 src
drwxr-xr-x 10 jenkins jenkins 266 7月 30 00:06 target
注意:
如果有target的haul说明编译成功,他是在编译成功后生成的
下面演示创建一个自由风格项目来完成项目的集成过程:
拉取代码->编译->打包->部署
二、运行环境====web服务器
1.安装tomcat
1.下载
[root@gdx1 ~]# yum install java-1.8.0-openjdk* -y
[root@web ~]# rz
[root@web ~]# ll
-rw-r--r-- 1 root root 10851264 7月 20 17:52 apache-tomcat-9.0.20.tar.gz
2.解压
[root@web ~]# tar -xf apache-tomcat-9.0.20.tar.gz -C /usr/local/
[root@web ~]# cd /usr/local/
[root@web local]# ll
总用量 0
drwxr-xr-x 9 root root 220 7月 30 00:22 apache-tomcat-9.0.20
drwxr-xr-x 4 root root 53 7月 29 19:14 jenkins-tomcat
3.启动Tomcat
[root@web local]# /usr/local/apache-tomcat-9.0.20/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.20
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.20
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.20/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-9.0.20/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.20/bin/tomcat-juli.jar
Tomcat started.
4.验证启动端口
[root@web local]# netstat -tunlp
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 34770/java
tcp6 0 0 :::8009 :::* LISTEN 34770/java
tcp6 0 0 :::111 :::* LISTEN 1067/rpcbind
tcp6 0 0 :::8080 :::* LISTEN 34770/java
2.配置tomcat权限
后续Jenkins部署项目到Tomcat服务器,需要用到Tomcat的用户,所以修改tomcat以下配置, 添加用户及权限。
[root@web ]# vim /usr/local/apache-tomcat-9.0.45/conf/tomcat-users.xml
#插入到倒数第二行
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
[root@web ]# vim /usr/local/apache-tomcat-9.0.45/webapps/manager/META-INF/context.xml
#注释掉这段内容
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
原因:他只默认127.0.0.%来访问,其他不允许。
注意:但是以后在生产中这段配置jenkins的内网的ip
#重启
[root@web local]# /usr/local/apache-tomcat-9.0.20/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.20
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.20
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.20/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-9.0.20/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.20/bin/tomcat-juli.jar
[root@web local]# /usr/local/apache-tomcat-9.0.20/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.20
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.20
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.20/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-9.0.20/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.20/bin/tomcat-juli.jar
Tomcat started.
[root@web local]# cd /usr/local/apache-tomcat-9.0.20/
[root@web apache-tomcat-9.0.20]# ll
总用量 124
drwxr-x--- 2 root root 4096 7月 30 00:22 bin
-rw-r----- 1 root root 19182 5月 4 2019 BUILDING.txt
drwx------ 3 root root 254 7月 30 00:28 conf
-rw-r----- 1 root root 5407 5月 4 2019 CONTRIBUTING.md
drwxr-x--- 2 root root 4096 7月 30 00:22 lib
-rw-r----- 1 root root 57092 5月 4 2019 LICENSE
drwxr-x--- 2 root root 197 7月 30 00:23 logs
-rw-r----- 1 root root 2333 5月 4 2019 NOTICE
-rw-r----- 1 root root 3255 5月 4 2019 README.md
-rw-r----- 1 root root 6852 5月 4 2019 RELEASE-NOTES
-rw-r----- 1 root root 16262 5月 4 2019 RUNNING.txt
drwxr-x--- 2 root root 30 7月 30 00:22 temp
drwxr-x--- 7 root root 81 5月 4 2019 webapps
drwxr-x--- 3 root root 22 7月 30 00:23 work
[root@web apache-tomcat-9.0.20]# cd webapps/
[root@web webapps]# ll
总用量 4
drwxr-x--- 14 root root 4096 7月 30 00:22 docs
drwxr-x--- 6 root root 83 7月 30 00:22 examples
drwxr-x--- 5 root root 87 7月 30 00:22 host-manager
drwxr-x--- 5 root root 103 7月 30 00:22 manager
drwxr-x--- 3 root root 283 7月 30 00:22 ROOT
3.配置Jenkins操作tomcat(部署)
把项目部署到远程的Tomcat里面
1)安装 Deploy to container插件
Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
- 安装插件
- 配置构建过程===》添加构建后操作
- 重新构建
这次构建的速度明显提升很多
- web端查看:
补充:构建maven项目
Jenkins中自动构建项目的类型有很多,常用的有以下三种:
1.自由风格软件项目(FreeStyle Project)
2.Maven项目(Maven Project)
3.流水线项目(Pipeline Project)
每种类型的构建其实都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在 实际开发中可以根据自己的需求和习惯来选择。