jenkins发布项目

本文介绍了如何使用jenkins在两台主机间进行项目的自动化部署,包括手动部署的步骤,自动部署的配置,以及从私有仓库拉取代码的过程。在server2上通过jenkins打包war文件,然后传输到node2上的tomcat服务器,实现免密登录并完成构建与访问验证。
摘要由CSDN通过智能技术生成

jenkins发布项目

环境:

主机IP地址服务
server2192.168.244.131jenkins
node2192.168.244.136tomcat

在两台主机上部署相应的服务

在浏览器上访问 192.168.244.131:8080/jenkins server2主机IP

在这里插入图片描述

在浏览器上访问 192.168.244.136:8080 node2主机IP

在这里插入图片描述

在server2上简单部署一个项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

手动部署

(没有要自己注册一个账号)在网页上找包

在这里插入图片描述

下载git拉包

[root@server2 opt]# yum  provides  *bin/git
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 1:39:34 ago on Tue Oct 19 15:24:11 2021.
git-core-2.27.0-1.el8.x86_64 : Core package of git
     ...: with minimal functionality
Repo        : AppStream
Matched from:
Other       : *bin/git

[root@server2 opt]# yum -y install git-core

拉包

[root@server2 opt]# git clone https://gitee.com/skywsy/tomcat-java-demo.git
Cloning into 'tomcat-java-demo'...
remote: Enumerating objects: 558, done.
remote: Counting objects: 100% (558/558), done.
remote: Compressing objects: 100% (316/316), done.
Receiving objects:  28% (161/558), 396.00 KiB | 383.
......
[root@server2 opt]# ls
test  tomcat-java-demo
[root@server2 opt]# 

把tomcat-java-demo打包war包

在这之前要下载mvn命令

[root@server2 tomcat-java-demo]# yum  provides  *bin/mvn
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 1:46:36 ago on Tue Oct 19 15:24:11 2021.
maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch :
     ...: Java project management and project
     ...: comprehension tool
Repo        : AppStream
Matched from:
Other       : *bin/mvn

maven-lib-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch :
     ...: Core part of Maven
Repo        : AppStream
Matched from:
Other       : *bin/mvn

[root@server2 tomcat-java-demo]# yum -y install maven

打包(war包)

[root@server2 tomcat-java-demo]# ls
Dockerfile  README.md  deploy.yaml  pom.xml
LICENSE     db         jenkinsfile  src
[root@server2 tomcat-java-demo]# mvn clean package
......
ream-1.4.9.jar (549 kB at 292 kB/s)
[INFO] Packaging webapp
[INFO] Assembling webapp [ly-simple-tomcat] in [/opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [159 msecs]
[INFO] Building war: /opt/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:00 min
[INFO] Finished at: 2021-10-19T18:52:44+08:00
[INFO] ------------------------------------------------------------------------
[root@server2 tomcat-java-demo]# ls
Dockerfile  README.md  deploy.yaml  pom.xml  target
LICENSE     db         jenkinsfile  src
[root@server2 tomcat-java-demo]# 
[root@server2 tomcat-java-demo]# cd  target/
[root@server2 target]# ls
classes
generated-sources
ly-simple-tomcat-0.0.1-SNAPSHOT
ly-simple-tomcat-0.0.1-SNAPSHOT.war
maven-archiver
maven-status

把ly-simple-tomcat-0.0.1-SNAPSHOT.war传到node2上

[root@server2 target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war  DD.war  #随便改个名字
[root@server2 target]# ls
DD.war             ly-simple-tomcat-0.0.1-SNAPSHOT
classes            maven-archiver
generated-sources  maven-status
[root@server2 target]# 
[root@server2 target]# 
[root@server2 target]# scp DD.war root@192.168.244.136:/usr/local/tomcat/webapps/
root@192.168.244.136's password: 
DD.war            100%   17MB 224.1MB/s   00:00 
##在node2上擦查看
[root@node2 ~]# cd  /usr/local/tomcat/webapps/
[root@node2 webapps]# ls
DD      ROOT  examples      manager
DD.war  docs  host-manager
[root@node2 webapps]# 


用node2的IP访问网页
在这里插入图片描述

自动部署

拉包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在server2查看

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

修改名字

在这里插入图片描述
在这里插入图片描述

在主机server2上查看

[root@server2 target]# ls
classes                          maven-archiver
generated-sources                maven-status
ly-simple-tomcat-0.0.1-SNAPSHOT  myapp.war

 ssh "ssh root@192.168.244.136 'tar -Jcf /opt/backup/myapp-$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/DD'"

部署项目
在这里插入图片描述

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('publish') {
            steps {
                sh  "ssh root@192.168.244.136 'tar -Jcf /opt/backup/myapp-\$(date +%Y%m%d).tar.xz /usr/local/tomcat/webapps/DD'"
                sh  "scp target/myapp.war root@192.168.244.136:/usr/local/tomcat/webapps"
                sh  "ssh root@192.168.244.136 '/usr/local/tomcat/bin/shutdown.sh;slepp 3; /usr/local/tomcat/bin/catalina.sh start'"
                
            }  
            
            
        }
    }   
}

创建免密登录

[root@server2 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3eu2cD23cNUuCjg+oI1exj3kosIW0P7KPVdk4LwMXOk root@server2
The key's randomart image is:
+---[RSA 3072]----+
|       .         |
|      +          |
| . . = .         |
|. . o E o. .    .|
| o   o +S . .   o|
|  o  .++..   o ..|
| . o +=o* o o.+.o|
| .+.=+oo.o =..o+.|
| .o++o  .. .+. . |
+----[SHA256]-----+
[root@server2 ~]# 
[root@server2 ~]# 
[root@server2 ~]# ls  .ssh/
id_rsa  id_rsa.pub  known_hosts
[root@server2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.244.136
/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
root@192.168.244.136's password: 

Number of key(s) added: 1

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

构建

在这里插入图片描述

在node2上查看

[root@node2 webapps]# ls
ROOT  examples      manager  myapp.war
docs  host-manager  myapp

访问网页

在这里插入图片描述

拉取私有仓库

手动拉取

[root@server2 ~]# git  clone https://gitee.com/skywsy/tomcat-java-demo.git
Cloning into 'tomcat-java-demo'...
Username for 'https://gitee.com': skywsy     用户名
Password for 'https://skywsy@gitee.com':     密码
.....

自动拉取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值