通过jenkins发布java项目到另一台主机

Java程序发布步骤:

拉取代码并打包
备份原程序(因为到当war包放在tomcat目录后他会自动解压)
拷贝新程序到服务器的web apps目录中,然后修改配置
重启tomcat服务
进行验证

案例

先新建一个项目

通过jenkins发布java项目到另一台主机_第1张图片
通过jenkins发布java项目到另一台主机_第2张图片
脚本的使用方式
通过jenkins发布java项目到另一台主机_第3张图片
这里使用hello world脚本的演示,点击保存并应用即可,它就会自动输出hello world
通过jenkins发布java项目到另一台主机_第4张图片
通过jenkins发布java项目到另一台主机_第5张图片
通过jenkins发布java项目到另一台主机_第6张图片
通过jenkins发布java项目到另一台主机_第7张图片
通过jenkins发布java项目到另一台主机_第8张图片

主机 IP
Jenkins 192.168.71.134
server 192.168.71.138
在Jenkins主机上部署Jenkins,server主机上部署tomcat
因为Jenkins需要tomcat。而tomcat需要安装Java环境
[root@jenkins ~]# yum -y install java-11-openjdk-devel.x86_64
下载tomcat
[root@jenkins ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/
解压tomcat到/usr/local目录下
[root@jenkins ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/

将apache-tomcat-9.0.54改为Jenkins
[root@jenkins local]# mv apache-tomcat-9.0.54/ tomcat

下载Jenkins,去官网下载:https://www.jenkins.io/zh/download/

[root@jenkins ~]# wget http://mirrors.jenkins.io/war-stable/2.303.2/jenkins.war

将下载好的war包移到当前目录
[root@jenkins webapps]# pwd
/usr/local/jenkins/webapps

在移到当前目录之前将除ROOT以外的所有文件及目录,因为这个tomcat是给Jenkins使用的所以只需要留ROOT目录
[root@jenkins webapps]# mv /root/jenkins.war ./
移到当前目录后war包会自动解压
[root@jenkins webapps]# rm -rf docs  examples  host-manager  manager

启动服务
[root@jenkins bin]# pwd
/usr/local/jenkins/bin
[root@jenkins bin]# ./catalina.sh start

在浏览器输入IP地址加端口号和jenkins
到这个文件里面找到免密并输入

通过jenkins发布java项目到另一台主机_第9张图片
通过jenkins发布java项目到另一台主机_第10张图片

server配置

这个是tomcat的官网:https://archive.apache.org/dist/tomcat/去下载即可

下载tomcat的tar包
[root@server ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.54/

解压tar包
[root@server ~]# tar xf apache-tomcat-9.0.54.tar.gz -C /usr/local/

为方便后面的操作将apache-tomcat-9.0.54改为tomcat
[root@server local]# mv apache-tomcat-9.0.54/ tomcat

因为tomca需要Java环境所以需要先安装java
[root@server ~]# yum -y install java-11-openjdk-devel.x86_64

配置tomcat的service文件,让其开机自启
[root@server system]# systemctl daemon-reload 
[root@server system]# systemctl enable --now tomcat.service 
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
[root@server system]# pwd
/usr/lib/systemd/system

[root@server system]# cat tomcat.service 
[Unit]
Description=tomcat server daemon
After=network.target 

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

[root@server system]# systemctl status tomcat.service 
● tomcat.service - tomcat server daemon
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor prese>
   Active: active (running) since Tue 2021-10-19 19:09:33 CST; 52s ago
  Process: 547856 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited>
 Main PID: 547868 (java)

配置好之后就执行第一步拉取代码

先下载git命令用来拉取代码
[root@jenkins ~]# yum -y install git
[root@jenkins ~]# git clone https://gitee.com/jinchenghe92/tomcat-java-demo.git

第二步打包代码

先下载mvn命令
[root@jenkins tomcat-java-demo]# yum -y install maven
[root@jenkins tomcat-java-demo]# mvn clean package
打包之后他就会生成一个tar包
[root@jenkins tomcat-java-demo]# ls 
db           Dockerfile   LICENSE  README.md  target
deploy.yaml  jenkinsfile  pom.xml  src

[root@jenkins target]# pwd
/opt/tomcat-java-demo/target
[root@jenkins target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war myapp.war   //改名字为了方便后面的操作

做免密登录
[root@jenkins target]#  ssh-keygen -t rsa  //一路回车即可
[root@jenkins target]# ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:   //输入对端主机的密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

再将包传到对端主机上
[root@jenkins target]# scp myapp.war [email protected]:/usr/local/tomcat/webapps/
传到此目录后会自动解压
[root@server webapps]# ls | grep myapp
myapp
myapp.war

通过jenkins发布java项目到另一台主机_第11张图片
在Jenkins的web界面进行自动发布
选择GitHub
通过jenkins发布java项目到另一台主机_第12张图片
通过jenkins发布java项目到另一台主机_第13张图片
通过jenkins发布java项目到另一台主机_第14张图片
保存并应用
通过jenkins发布java项目到另一台主机_第15张图片
点击构建,绿色代表成功
通过jenkins发布java项目到另一台主机_第16张图片
打包成功之后将包放在下面的目录下

[root@jenkins ~]# cd /root/.jenkins/workspace/first/target/
[root@jenkins target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status

备份原程序

创建目录用来存放备份的包
[root@server webapps]# mkdir /opt/packages
[root@server webapps]# tar -Jcf /opt/packages/myapp-$(date +%Y%m%d%H%M).tar.xz /usr/local/tomcat/webapps/myapp

通过jenkins发布java项目到另一台主机_第17张图片
刷新界面访问
通过jenkins发布java项目到另一台主机_第18张图片
流水线的语法
可以通过这个git命令去拉取代码
通过jenkins发布java项目到另一台主机_第19张图片
通过jenkins发布java项目到另一台主机_第20张图片
通过jenkins发布java项目到另一台主机_第21张图片
添加凭据
通过jenkins发布java项目到另一台主机_第22张图片
填写好用户名和密码后点击添加
通过jenkins发布java项目到另一台主机_第23张图片
选择刚才添加的凭据,再生成流水线
通过jenkins发布java项目到另一台主机_第24张图片
将生成的流水线脚本路径写到此处,即可拉取成功

通过jenkins发布java项目到另一台主机_第25张图片
成功
通过jenkins发布java项目到另一台主机_第26张图片
通过jenkins发布java项目到另一台主机_第27张图片

你可能感兴趣的:(java,tomcat,jenkins)