欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Jenkins部署war包和部署jar包的详细步骤

程序员文章站 2022-06-26 13:37:44
零、配置tomcat默认情况下tomcat是没有配置用户角色权限的但是,后续jenkins部署项目到tomcat服务器,需要用到tomcat的用户,所以修改tomcat以下配置, 添加用户及权限vi...

零、配置tomcat

默认情况下tomcat是没有配置用户角色权限的

Jenkins部署war包和部署jar包的详细步骤
Jenkins部署war包和部署jar包的详细步骤

但是,后续jenkins部署项目到tomcat服务器,需要用到tomcat的用户,所以修改tomcat以下配置, 添加用户及权限

vi /opt/tomcat/conf/tomcat-users.xml
# 内容如下:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/> 

用户和密码都是:tomcat 注意:为了能够刚才配置的用户登录到tomcat,还需要修改以下配置

Jenkins部署war包和部署jar包的详细步骤

vi /opt/tomcat/webapps/manager/meta-inf/context.xml
<!--
<valve classname="org.apache.catalina.valves.remoteaddrvalve"
   allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
# 把上面这行注释掉即可!

Jenkins部署war包和部署jar包的详细步骤

重启tomcat,访问测试

Jenkins部署war包和部署jar包的详细步骤

输入 tomcat tomcat

Jenkins部署war包和部署jar包的详细步骤

配置tomcat凭证

Jenkins部署war包和部署jar包的详细步骤

一、*风格项目远程部署war包

1.创建*风格项目

Jenkins部署war包和部署jar包的详细步骤

2.增加构建步骤

编译打包

Jenkins部署war包和部署jar包的详细步骤

3.增加构建后操作

远程部署

Jenkins部署war包和部署jar包的详细步骤

4.立即构建

Jenkins部署war包和部署jar包的详细步骤

5.查看控制台输出

Jenkins部署war包和部署jar包的详细步骤

二、创建流水线项目远程部署war包

项目选择为pipeline流水线项目

  1. 概念

pipeline,简单来说,就是一套运行在 jenkins 上的工作流框架,将原来独立运行于单个或者多个节点
的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

  1. 使用pipeline有以下好处(来自翻译自官方文档):

代码:pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流 程。 持久:无论是计划内的还是计划外的服务器重启,pipeline都是可恢复的。 可停止:pipeline可接 收交互式输入,以确定是否继续执行pipeline。 多功能:pipeline支持现实世界中复杂的持续交付要 求。它支持fork/join、循环执行,并行执行任务的功能。 可扩展:pipeline插件支持其dsl的自定义扩 展 ,以及与其他插件集成的多个选项。

  1. 如何创建 jenkins pipeline呢?

pipeline 脚本是由 groovy 语言实现的,但是我们没必要单独去学习 groovy
pipeline 支持两种语法:declarative(声明式)和 scripted pipeline(脚本式)语法
pipeline 也有两种创建方法:可以直接在 jenkins 的 web ui 界面中输入脚本;也可以通过创建一 个 jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 jenkins 中直接从源代码控制(scm) 中直接载入 jenkinsfile pipeline 这种方法)。

安装pipeline插件 manage jenkins->manage plugins->可选插件
安装插件后,创建项目的时候多了“流水线”类型

Jenkins部署war包和部署jar包的详细步骤

1.拉取代码

配置git仓库,点击流水线语法

Jenkins部署war包和部署jar包的详细步骤

Jenkins部署war包和部署jar包的详细步骤

点击生成流水线脚本

Jenkins部署war包和部署jar包的详细步骤

2.构建编译

pipeline {
 agent any

 stages {
  stage('拉取代码') {
   steps {
   checkout([$class: 'gitscm', branches: [[name: '*/master']], dogeneratesubmoduleconfigurations: false, extensions: [], submodulecfg: [], userremoteconfigs: [[credentialsid: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/l1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('编译构建') {
   steps {
    sh label: '', script: 'mvn clean package -dmaven.test.skip=true'
   }
  }
   stage('构建完成') {
   steps {
    echo '构建完成'
   }
  }
  stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsid: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextpath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '构建通知:${project_name} - build # ${build_number} - ${build_status}!',
    body: '${file,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

Jenkins部署war包和部署jar包的详细步骤

3.远程部署

Jenkins部署war包和部署jar包的详细步骤

点击生成流水线脚本

Jenkins部署war包和部署jar包的详细步骤

 stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsid: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextpath: null, war: 'target/*.war'
   }
  }

完整脚本:

pipeline {
 agent any

 stages {
  stage('拉取代码') {
   steps {
   checkout([$class: 'gitscm', branches: [[name: '*/master']], dogeneratesubmoduleconfigurations: false, extensions: [], submodulecfg: [], userremoteconfigs: [[credentialsid: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/l1692312138/ssm_web_war_jenkins.git']]])
   }
  }
  stage('编译构建') {
   steps {
    sh label: '', script: 'mvn clean package -dmaven.test.skip=true'
   }
  }
   stage('构建完成') {
   steps {
    echo '构建完成'
   }
  }
  stage('远程部署') {
   steps {
   deploy adapters: [tomcat8(credentialsid: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextpath: null, war: 'target/*.war'
   }
  }
 }
 post {
   always {
    emailext(
    subject: '构建通知:${project_name} - build # ${build_number} - ${build_status}!',
    body: '${file,path="email.html"}',
    to: '1692312138@qq.com'
    )
   }
 }
}

安装pipeline script from scm插件
刚才我们都是直接在jenkins的ui界面编写pipeline代码,这样不方便脚本维护,建议把pipeline脚本放
在项目中(一起进行版本控制) 1)在项目根目录建立jenkinsfile文件,把内容复制到该文件中

Jenkins部署war包和部署jar包的详细步骤

2)在项目中引用该文件

Jenkins部署war包和部署jar包的详细步骤

点击构建 查看控制台输出

Jenkins部署war包和部署jar包的详细步骤

二、部署jar包

1.创建*风格项目

流程 :
增加构建后操作步骤,然后配置ssh信息,编写脚本,然后发包后执行脚本,停止进程,在启动进程。

2. 安装publish over ssh插件

publish over ssh插件

Jenkins部署war包和部署jar包的详细步骤

然后配置ssh

Jenkins部署war包和部署jar包的详细步骤
Jenkins部署war包和部署jar包的详细步骤
Jenkins部署war包和部署jar包的详细步骤

3.增加构建步骤 编译打包

Jenkins部署war包和部署jar包的详细步骤

4.增加构建后操作步骤

配置工程 --》增加构建后操作步骤 选择sned build artifacts over ssh

Jenkins部署war包和部署jar包的详细步骤

source files 项目构建后的目录

remove prefix 去前缀

remote directoty 发布的目录

exec command 发布完执行的命令

Jenkins部署war包和部署jar包的详细步骤

5.编写shell脚本

先通过项目名查找正在运行的项目的端口号,如果存在,则杀死该进程,
然后再次重启项目。

shell脚本:

#!/bin/env bash

#pid=`ps -ef |grep 项目名称 |grep -v grep | awk '{print $2}'`
pid=`ps -ef |grep 'wxthepublic-1.0-snapshot.jar' |grep -v grep | awk '{print $2}'`
if [ ! "$pid" ]
then # 这里判断tomcat进程是否存在
 echo $pid"进程不存在"
else
 echo "进程存在 杀死进程pid$pid"
 kill -9 $pid
fi
nohup java -jar 'wxthepublic-1.0-snapshot.jar' >/dev/null 2>log &
#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef | grep java| grep 'wxthepublic-1.0-snapshot.jar'|awk -f '[ ]+' '{print $2}')
echo $pid
if [ -z $pid ]
then
 echo "启动失败"
 exit 1
else
 echo 'wxthepublic-1.0-snapshot.jar' : $pid "启动成功"
fi

6.立即构建

点击立即构建,查看控制台输出

Jenkins部署war包和部署jar包的详细步骤

目录下已经出现打过的jar包。

Jenkins部署war包和部署jar包的详细步骤

Jenkins部署war包和部署jar包的详细步骤

到此这篇关于jenkins部署war包和部署jar包的详细步骤的文章就介绍到这了,更多相关jenkins部署war包和jar包内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!