零、配置Tomcat
默认情况下Tomcat是没有配置用户角色权限的
但是,后续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,还需要修改以下配置
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" /> --> # 把上面这行注释掉即可!
重启Tomcat,访问测试
输入 tomcat tomcat
配置Tomcat凭证
一、自由风格项目远程部署war包
1.创建自由风格项目
2.增加构建步骤
编译打包
3.增加构建后操作
远程部署
4.立即构建
5.查看控制台输出
二、创建流水线项目远程部署war包
项目选择为Pipeline流水线项目
,
- 概念
Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点
的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。
- 使用Pipeline有以下好处(来自翻译自官方文档):
代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流 程。 持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。 可停止:Pipeline可接 收交互式输入,以确定是否继续执行Pipeline。 多功能:Pipeline支持现实世界中复杂的持续交付要 求。它支持fork/join、循环执行,并行执行任务的功能。 可扩展:Pipeline插件支持其DSL的自定义扩 展 ,以及与其他插件集成的多个选项。
- 如何创建 Jenkins Pipeline呢"text-align: center">
1.拉取代码
配置git仓库,点击
流水线语法
点击生成流水线脚本
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' ) } } }
3.远程部署
点击生成流水线脚本
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文件,把内容复制到该文件中2)在项目中引用该文件
点击构建 查看控制台输出
二、部署jar包
1.创建自由风格项目
流程 :
增加构建后操作步骤,然后配置ssh信息,编写脚本,然后发包后执行脚本,停止进程,在启动进程。2. 安装Publish Over SSH插件
Publish Over SSH插件
然后配置ssh
3.增加构建步骤 编译打包
4.增加构建后操作步骤
配置工程 --》增加构建后操作步骤 选择Sned build artifacts over SSH
Source files 项目构建后的目录
Remove prefix 去前缀
Remote directoty 发布的目录
Exec command 发布完执行的命令
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.立即构建
点击立即构建,查看控制台输出
目录下已经出现打过的jar包。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?