java程序发布步骤
1.拉取代码并打包
2.备份原程序
3.拷贝新程序到服务器的webapps目录中,停一会修改配置
4.重启tomcat
5.验证
两台主机,一台jenkins,另一台tomcat
//启动两台
[root@jenkins ~]# /usr/local/jenkins/bin/startup.sh
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@jenkins ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
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 [::]:*
手动部署版
//拉取代码需要用到git命令下载git
[root@jenkins ~]# yum -y install git
[root@jenkins ~]# cd /opt/
[root@jenkins opt]# git clone https://gitee.com/forgotten/tomcat-java-demo.git
正克隆到 'tomcat-java-demo'...
remote: Enumerating objects: 558, done.
remote: Counting objects: 100% (558/558), done.
remote: Compressing objects: 100% (316/316), done.
remote: Total 558 (delta 217), reused 558 (delta 217), pack-reused 0
接收对象中: 100% (558/558), 5.08 MiB | 212.00 KiB/s, 完成.
处理 delta 中: 100% (217/217), 完成.
[root@jenkins opt]# ls
tomcat-java-demo
//下载打包工具maven
[root@jenkins tomcat-java-demo]# yum -y install maven
[root@jenkins tomcat-java-demo]# mvn clean package
//target里面是打包好的
[root@jenkins tomcat-java-demo]# ls
db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src target
[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/myapp.war
[root@jenkins tomcat-java-demo]# ls target/
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-status
generated-sources maven-archiver myapp.war
//因为要把包传到server端,所以要做免密登录,在Jenkins生成公钥传给server
[root@jenkins tomcat-java-demo]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id root@192.168.47.163
[root@jenkins tomcat-java-demo]# scp target/myapp.war root@192.168.47.163:/usr/local/tomcat/webapps
myapp.war 100% 17MB 49.5MB/s 00:00
//查看
[root@server tomcat]# pwd
/usr/local/tomcat
[root@server tomcat]# ls webapps/
docs examples host-manager manager ROOT
[root@server tomcat]# ls webapps/
docs examples host-manager manager myapp myapp.war ROOT
自动版:
//进行第二步备份得像脚本一样,创建一个目录存放备份
//以下是手动备份
[root@server webapps]# mkdir /opt/backup
[root@localhost demo]# ssh root@192.168.47.163 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp.war'
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git 'https://gitee.com/forgotten/tomcat-java-demo.git'
// Run Maven on a Unix agent.
sh "mvn -Dmaven.test.failure.ignore=true clean package"
sh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war"
// To run Maven on a Windows agent, use
// bat "mvn -Dmaven.test.failure.ignore=true clean package"
}
}
stage('publicsh'){
steps{
sh "ssh root@192.168.47.163 tar -Jcf /opt/backup/myapp-\$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp.war"
sh "scp target/myapp.war/ root@192.168.47.163:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.47.163 '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start' "
}
}
}
}