使用jenkins部署项目到对端主机
1. 部署环境
主机 | IP地址 | 主机上所有的服务 |
---|---|---|
jenkins | 192.168.200.151 | tomcat、jenkins |
test | 192.168.200.144 | tomcat |
2. jenkins部署项目(手动部署)
//先下载git工具和打包工具
[root@jenkins opt]# -y install maven git
//在github上克隆一个Java项目到本机opt目录里
[root@jenkins opt]# git clone https://gitee.com/caimengzhi/tomcat-java-demo.git
[root@jenkins opt]# ls
tomcat-java-demo
//把java项目进行打包
[root@jenkins tomcat-java-demo]# mvn clean package
[root@jenkins tomcat-java-demo]# ls
jenkins 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]#
//做免密登录
[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id root@192.168.200.151
//把项目传到对端主机
[root@jenkins opt]# scp tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.200.151:/usr/local/tomcat/webapps/
ly-simple-tomcat-0.0.1-SNAPSHOT.war 100% 21MB 166.7MB/s 00:00
[root@jenkins opt]#
//在对端主机查看,发现以及解压好了
[root@localhost webapps]# ls
docs ly-simple-tomcat-0.0.1-SNAPSHOT ROOT
examples ly-simple-tomcat-0.0.1-SNAPSHOT.war
host-manager manager
[root@localhost webapps]# mv ly-simple-tomcat-0.0.1-SNAPSHOT mydemo
//重启tomcat
[root@localhost webapps]# /usr/local/tomcat/bin/shutdown.sh stop
[root@localhost webapps]# /usr/local/tomcat/bin/catalina.sh start
[root@localhost webapps]# 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 128 [::]:22 [::]:*
LISTEN 0 100 *:8080 *:*
3. jenkins部署项目(自动部署)
先创建一个项目
编写的脚本
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git "https://gitee.com/cai-aocheng/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("publish"){
steps{
//ssh root@192.168.200.144 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/myapp'
sh "scp target/myapp.war root@192.168.200.144:/usr/local/tomcat/webapps/"
sh "ssh root@192.168.200.144 '/usr/localtomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'"
}
}
}
}
添加所myapp项目名访问(没有配置数据库)
4. 通过代码仓库部署项目(有密码)