- 1、关闭防火墙和selinux
- 2、手动发布Java项目
- 3、Jenkins 半自动发布 Java项目
本次实验的前提是具备以下表格要求,并且要做免密登陆
| 主机名 | IP | 软件环境 |
|---|---|---|
| Jenkins | 192.168.164.133 | tomcat、jenkins |
| server | 192.168.164.137 | tomcat |
Java程序发布步骤:
1、拉取代码并打包
2、备份原程序
3、拷贝新程序到服务器的webapps目录中,停一会修改配置
4、重启tomcat
5、验证
两台主机都需要操作
[root@jenkins ~]# systemctl disable --now firewalld [root@jenkins ~]# setenforce 0 //临时关闭 [root@jenkins ~]# vim /etc/selinux/config //永久关闭 SELINUX=disabled2、手动发布Java项目
//下载拉取代码的软件包和打包代码的软件包 [root@jenkins ~]# yum -y install git [root@jenkins ~]# yum -y install maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch //拉取代码 [root@jenkins ~]# git clone https://gitee.com/forgotten/tomcat-java-demo.git [root@jenkins ~]# ls anaconda-ks.cfg tomcat-java-demo //打包代码 [root@jenkins tomcat-java-demo]# ls db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src [root@jenkins tomcat-java-demo]# mvn clean package [root@jenkins tomcat-java-demo]# ls db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src target //拷贝war包到server主机上的/root/tomcat/webapps目录下 [root@jenkins tomcat-java-demo]# ls target/ classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status [root@jenkins tomcat-java-demo]# mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/app.war [root@jenkins tomcat-java-demo]# ls target/ classes generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver maven-status app.war [root@jenkins tomcat-java-demo]# scp target/app.war root@192.168.164.137:/root/tomcat/webapps/ app.war 100% 17MB 123.8MB/s 00:00 //tomcat自动解压war包 [root@server ~]# ls /root/tomcat/webapps/ docs examples host-manager manager app app.war ROOT [root@jenkins ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* LISTEN 0 100 *:8080 *:* LISTEN 0 128 [::]:22 [::]:* [root@jenkins ~]#3、Jenkins 半自动发布 Java项目
在服务端创建一个接受文件的目录
[root@server ~]# mkdir /opt/backup
脚本:
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://gitee.com/forgotten/tomcat-java-demo.git' #拉取Java代码
// Run Maven on a Unix agent.
sh '''
mvn -Dmaven.test.failure.ignore=true clean package #打包文件,并忽略错误
mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/app.war #更改打包的文件名
'''
// To run Maven on a Windows agent, use
}
}
stage("publish"){
steps{
sh '''
ssh root@192.168.164.137 'tar -Jcf /opt/backup/app-$(date +%Y%m%d%H%M).tar.xz /root/tomcat/webapps/app' #备份server主机上的原war包,以便回滚
scp target/app.war root@192.168.164.137:/root/tomcat/webapps/ #将打好的包cp至server主机
ssh root@192.168.164.137 '/uroot/tomcat/bin/catalina.sh stop' #关闭tomcat服务
sleep 3 #休息3秒
ssh root@192.168.164.137 '/root/tomcat/bin/catalina.sh start' #开启服务
'''
}
}
}
}



