Jenkins部署java项目
我们之前使用jenkins发布了php代码,但这种需求在生产环境中可能用的并不多,用的更多的反而是部署java项目,java的项目是需要编译和打包的。编译和打包用maven完成,所以需要安装maven。
创建私有仓库
首先搭建一个私有仓库,具体步骤可以参考前面的笔记 ,这里我使用另外一台机器jinkai05搭建gitlab服务器,IP是192.168.111.140。
环境:
jinkai01 ip:192.168.111.136 role:jenkins服务器
jinkai02 ip:192.168.111.137 role:部署机器
jinkai05 ip:192.168.111.140 role:gitlab服务器
jinikai05上安装gitlab:
# vim /etc/yum.repos.d/gitlab.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
安装依赖包:
yum -y install curl openssh-server openssh-clients postfix cronie
安装gitlab
yum install -y gitlab-ce
配置gitlab
gitlab-ctl reconfigure
启动服务
gitlab-ctl restart
查看端口
netstat -lntp
查看状态
gitlab-ctl status
启动服务后,网页直接输入IP:192.168.111.140访问
会提示重新设置密码---默认用户root和新密码登录
建立新项目—项目名称自定义
点击保存后,弹出下面页面,建议复制链接重新打开一个窗口,我们需要先设置SSH Key
Jinkai01机器上生成公钥,粘贴到SSH Keys:
生成密钥对:ssh-keygen
查看公钥:
[root@jinkai wuhaha]# cat /root/.ssh/id_rsa.pub
打开刚才复制链接的新窗口,按照这里配置在jinkai01服务器上执行:
全局设置
[root@jinkai wuhaha]# cd /home/
[root@jinkai home]# git config --global user.name "Administrator"
[root@jinkai home]# git config --global user.email [email protected]
创建一个新的仓库
[root@jinkai home]# git clone [email protected]:root/jinkai05.git
正克隆到 'jinkai05'...
warning: 您似乎克隆了一个空版本库。
[root@jinkai home]# cd jinkai05/
[root@jinkai jinkai05]# touch README.md
[root@jinkai jinkai05]# git add README.md
[root@jinkai jinkai05]# git commit -m "add README"
[master(根提交) cac5983] add README
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
[root@jinkai jinkai05]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 216 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:root/jinkai05.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
刷新浏览器界面,可以看到刚刚上传的README.md文件
到这里,我们的私有仓库就创建好了。
下载Zrlog源码
ZrLog是使用 Java 开发的博客/CMS程序,具有简约,易用,组件化,内存占用低等特点,自带 Markdown 编辑器。这里我们使用Zrlog的源码作为java代码以作测试。
Jinkai01**上下载zrlog的源码:**
[root@jinkai home]# wget
https://codeload.github.com/94fzb/zrlog/zip/master
[root@jinkai home]# yum install -y unzip
[root@jinkai home]# unzip master
[root@jinkai home]# ls
albert jinkai05 linuxprobe master wuhaha zrlog-master
[root@jinkai home]# ls zrlog-master/
admin-frontend common doc LICENSE mvnw.cmd README.en-us.md service
bin data install-frontend mvnw pom.xml README.md web
移动到jinkai05目录:
[root@jinkai home]# mv zrlog-master/* jinkai05/
mv:是否覆盖"jinkai05/README.md"? yes
[root@jinkai home]# cd jinkai05/
[root@jinkai jinkai05]# ls
admin-frontend common doc LICENSE mvnw.cmd README.en-us.md service
bin data install-frontend mvnw pom.xml README.md web
上传到gitlab服务器:
[root@jinkai jinkai05]# git add .
[root@jinkai jinkai05]# git commit -m "add zrlog"
[root@jinkai jinkai05]# git push
Counting objects: 596, done.
Compressing objects: 100% (544/544), done.
Writing objects: 100% (594/594), 1.75 MiB | 0 bytes/s, done.
Total 594 (delta 82), reused 0 (delta 0)
remote: Resolving deltas: 100% (82/82), done.
To [email protected]:root/jinkai05.git
cac5983..2a953b1 master -> master
刷新浏览器界面,可以看到刚刚上传的zrlog文件
安装tomcat
这里再使用一台机器jinkai02安装jdk和tomcat,这里的jdk不能使用openjdk,否则后面会报错。具体安装步骤参考这里:
安装JDK
官网下载地址:
https://www.oracle.com/java/technologies/javase-downloads.html
我电脑已经存放jdk的安装包,就直接上传了
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# rz
解压,移动
[root@localhost src]# tar -xzvf jdk-14.0.2_linux-x64_bin.tar.gz
[root@localhost src]# mv jdk-14.0.2 /usr/local/jdk-14
设置环境变量
vim /etc/profile
添加下面内容
JAVA_HOME=/usr/local/jdk-14/
JAVA_BIN=/usr/local/jdk-14/bin
JRE_HOME=/usr/local/jdk-14/jre
PATH=$PATH:/usr/local/jdk-14/bin:/usr/local/jdk-14/jre/bin
CLASSPATH=/usr/local/jdk-14/jre/lib:/usr/local/jdk-14/lib:/usr/local/jdk-14/jre/lib/charsets.jar
立即生效:
source /etc/profile
检测设置是否正确
java -version
java version "14.0.2" 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
安装tomcat:
官网下载地址:http://tomcat.apache.org/
下载安装包:
[root@localhost src]# wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz
解压安装包并移动
[root@localhost src]# tar -xzvf apache-tomcat-9.0.41.tar.gz
[root@localhost src]# mv apache-tomcat-9.0.41 /usr/local/tomcat
启动Tomcat
[root@localhost src]# /usr/local/tomcat/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/jdk-14
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
查看是否启动成功
[root@localhost src]# ps aux | grep tomcat
[root@localhost src]# netstat -lntp
设置开机启动
[root@localhost src]# echo
"/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local
[root@localhost src]# chmod a+x /etc/rc.d/rc.local
关闭防火墙使用浏览器访问:
[root@localhost src]#systemctl stop firewalld
[root@localhost src]# systemctl disable firewalld
打开浏览器,输入机器ip:8080端口访问
我们点击上图中manager webapp,会发现是403告警,如下图
编辑配置文件
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
编辑下面内容,增加一个92.168.111.*的段
allow="127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|192.168.111.*" />
重启tomcat
[root@localhost src]# /usr/local/tomcat/bin/shutdown.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/jdk-14
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@localhost src]# /usr/local/tomcat/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/jdk-14
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
刷新tomcat界面,出现一个弹窗,提示输入用户名和密码
增加tomcat用户
vim /usr/local/tomcat/conf/tomcat-users.xml
在最下面一行</tomcat-users>这行上面增加下面内容
<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="tomcat" password="admin123" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
#增加用户tomcat,密码为admin123,后面会用到
重启tomcat
[root@localhost src]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost src]# /usr/local/tomcat/bin/startup.sh
刷新浏览器界面,输入刚增加的用户名和密码,进入tomcat的管理页面
只有jenkins访问到这个后台管理接口才能发布war包。
安装maven
maven用来编译源码并打包,下载地址:http://maven.apache.org/download.cgi 。
要把maven安装在jenkins机器上,所以得在jinkai01机器上操作。
下载安装:
[root@jinkai src]# wget
https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解压:
[root@jinkai src]# tar -xzvf apache-maven-3.6.3-bin.tar.gz
查看版本:
[root@jinkai src]# apache-maven-3.6.3/bin/mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/src/apache-maven-3.6.3
Java version: 1.8.0_272, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
配置jenkins:
Manage jenkins → Global Tool Configuration,找到Maven配置
默认 settings 提供--选择文件系统中的 settings 文件,文件路径填写settings文件的路径;
默认全局 settings 提供--选择文件系统中的全局 settings 文件,文件路径填写settings文件的路径。
找到Maven,点击新增Maven,自定义名字,取消自动安装的勾选,路径填写刚刚安装maven的路径,应用保存即可