Jenkins配置weblogic自动发版--示例

Pipeline内容

properties([parameters([[$class: 'CascadeChoiceParameter', choiceType: 'PT_CHECKBOX', description: '选择 受管服务器', filterLength: 1, filterable: false, name: 'WLS_Targets', randomName: 'choice-parameter-173347495550024', referencedParameters: 'Action', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], oldScript: '', sandbox: false, script: 'return ["Envrionment Undefined"]'], script: [classpath: [], oldScript: '', sandbox: false, script: '''if (Action.equals("Deploy")) {return ["AdminServer:selected","serverA","serverB","serverC"]
} ''']]]])])pipeline {agent anytools {maven 'MAVEN3'jdk 'JDK1.8'}environment {// 项目代码拉取svn_path = "svn://172.16.20.70/ccms-project"svn_auth_id = "cdb6584d-9f9b-4ecb-890e-a15081c0abca"appName = "ccms-test"warName = "water-test-1.0-SNAPSHOT.war"}parameters {choice choices: ['Deploy', 'Delete'], description: '选择 发布项目|删除项目', name: 'Action'extendedChoice name: 'MavenBuild', type: 'PT_RADIO', description: '发版选项: 是否进行全新的Maven构建; 删除项目不需要勾选', quoteValue: false, saveJSONParameterToFile: false, value: 'Yes,Clean', descriptionPropertyValue: '进行Maven构建并发版,清除Maven缓存全新构', visibleItemCount: 5,  multiSelectDelimiter: ',', defaultValue: 'Yes'extendedChoice name: 'WLS_Servers', type: 'PT_CHECKBOX', description: '请选择weblogic服务器', quoteValue: false, saveJSONParameterToFile: false, value: 'weblogic1,weblogic2,weblogic3,weblogic4', descriptionPropertyValue: '172.16.20.70,172.16.20.71,172.16.20.72,172.16.20.73', visibleItemCount: 10, multiSelectDelimiter: ',', defaultValue: 'weblogic1'}stages {stage('项目代码拉取') {when {anyOf {allOf {environment name: 'Action', value: 'Deploy'environment name: 'MavenBuild', value: 'Yes'}allOf {environment name: 'Action', value: 'Deploy'environment name: 'MavenBuild', value: 'Clean'}}}steps{script {if ( env.Action == "Deploy" && env.MavenBuild == "Clean" ) {deleteDir()  // clean up current workspacecheckout([$class: 'SubversionSCM', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: "${svn_auth_id}", depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: "${svn_path}"]], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])}else {checkout([$class: 'SubversionSCM', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: "${svn_auth_id}", depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: "${svn_path}"]], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])}}}}stage('项目构建') {when {anyOf {allOf {environment name: 'Action', value: 'Deploy'environment name: 'MavenBuild', value: 'Yes'}allOf {environment name: 'Action', value: 'Deploy'environment name: 'MavenBuild', value: 'Clean'}}}steps {script {if ( env.MavenBuild == "Clean" ) {sh "rm -rf /root/.m2"withMaven(jdk: 'JDK1.8', maven: 'MAVEN3') {sh '''java -versionmvn -versionmvn clean install -Dmaven.test.skip=true'''}}else {withMaven(jdk: 'JDK1.8', maven: 'MAVEN3') {sh '''java -versionmvn -versionmvn clean install -Dmaven.test.skip=true'''}}}}}stage('项目发布') {when {environment name: 'Action', value: 'Deploy'}steps {script{for (wls_server in WLS_Servers.tokenize(',')) {// for (wls_target in WLS_Targets.tokenize(',')) {// 项目发布def target_dir = "target"def target_file = "${warName}"def source_file = "${target_dir}/${target_file}"def remove_prefix = "target"def remote_dir = "version"def remote_cmd = "cd /home/weblogic/; /bin/sh ccms-deploy.sh  deploy ${appName} ${warName} ${WLS_Targets} >> version/version-deploy.log"sshPublisher(publishers: [sshPublisherDesc(configName: "${wls_server}", transfers: [sshTransfer(execCommand: "${remote_cmd}", remoteDirectory: "${remote_dir}", removePrefix: "${remove_prefix}", sourceFiles: "${source_file}")],)])// }}}}}stage('项目删除') {when {environment name: 'Action', value: 'Delete'}steps {script{for (wls_server in WLS_Servers.tokenize(',')) {// for (wls_target in WLS_Targets.tokenize(',')) {// 项目删除def target_dir = ""def target_file = ""def source_file = ""def remove_prefix = ""def remote_dir = ""def remote_cmd = "cd /home/weblogic/; /bin/sh ccms-deploy.sh  delete ${appName} >> version/version-delete.log"sshPublisher(publishers: [sshPublisherDesc(configName: "${wls_server}", transfers: [sshTransfer(execCommand: "${remote_cmd}", remoteDirectory: "${remote_dir}", removePrefix: "${remove_prefix}", sourceFiles: "${source_file}")],)])// }}}}}}
}

脚本内容

#!/bin/bash
wls_classpath=/home/weblogic/Oracle/Middleware/wlserver/server/lib/action=$1
appName=$2
warName=$3
target=$4wlsaddr="t3://172.16.20.71:7001"
wlsuser=weblogic
wlspasswd=weblogic1save_files=5deploy() {
java -cp ${wls_classpath}/weblogic.jar weblogic.Deployer -adminurl $wlsaddr -user $wlsuser -password $wlspasswd -name $appName -deploy -targets $target -source /home/weblogic/version/$warName
}delete() {
java -cp ${wls_classpath}/weblogic.jar weblogic.Deployer -adminurl $wlsaddr -user $wlsuser -password $wlspasswd -name $appName -undeploy
}cleanWar() {
cd  /home/weblogic/version
while true;
dofile_count=`ls -1t  ${warName}.*|wc -l`if [ ${file_count} -gt ${save_files} ];thenls -1t ${warName}.*|tail -1|xargs rm -felsebreak;fi
done
}
if [ "$action" == "deploy" ];thendeployif [ "$?" -eq "0" ];thencd /home/weblogic/version; mv $warName $warName.bak_$(date '+%Y%m%d%H%M')ficleanWar
elif [ "$action" == "delete" ];thendelete
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1488724.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Geoscene Pro的数据管理

GeoScene Pro是为新一代WebGIS平台而全新打造的一款具有高效、强大生产力且为全面国产的的高级桌面应用程序,可以对来自本地、GeoScene Online、或者GeoScene Portal的数据进行可视化、编辑、分析,可以同时在2D和3D中制作内容,并发布为要素服…

医疗器械维修行业发展及趋势

医疗器械维修的前景是广阔的。‌ 随着医疗技术的不断发展和进步,‌医疗器械的种类和数量持续增加,‌对专业维修人员的需求也在不断上升。‌无论是医院、‌诊所等医疗机构,‌还是医疗器械生产企业、‌销售企业等,‌都需要专业的维修…

Spark+实例解读

第一部分 Spark入门 学习教程:Spark 教程 | Spark 教程 Spark 集成了许多大数据工具,例如 Spark 可以处理任何 Hadoop 数据源,也能在 Hadoop 集群上执行。大数据业内有个共识认为,Spark 只是Hadoop MapReduce 的扩展&#xff08…

C语言常见字符函数和字符串函数精讲

目录 引言 一、字符函数 1.字符分类函数 2.字符转换函数 二、字符串函数 1.gets、puts 2.strlen 3.strcpy 4.strncpy 5.strcat 6.strncat 7.strcmp 8.strncmp 9.strstr 10.strchr 11.strtok 12.strlwr 13.strupr 引言 在C语言编程中,字符函数…

Rancher 快照备份至 S3 及备份恢复

AWS S3(Simple Storage Service)是亚马逊云服务提供的一种高度可扩展、安全且经济高效的对象存储服务。它允许用户在任何位置存储和检索任意数量的数据,非常适合存储和分发静态文件、备份数据以及作为数据湖的存储层。 集群备份 一、创建S3桶 1、登录…

PyTorch学习(1)

PyTorch学习(1) CIFAR-10数据集-图像分类 数据集来源是官方提供的: torchvision.datasets.CIFAR10()共有十类物品,需要用CNN实现图像分类问题。 代码如下:(CIFAR_10_Classifier_Self_1.py) import torch import t…

【Linux】玩转操作系统,深入刨析进程状态与调度机制

目录 1. 进程排队2. 进程状态的表述2.1. 进程状态2.2 运行状态2.3. 阻塞状态2.4. 挂起状态 3. Linux下具体的进程状态3.1. 运行状态R3.2. 可中断睡眠状态S3.3. 不可中断睡眠状态D3.4. 停止状态T3.5. 死亡状态X3.6. 僵尸状态Z 4. 孤儿进程5. 优先级6. Linux的调度与切换6.1. 四个…

打破自闭症束缚:儿童康复案例揭秘

在浩瀚的康复领域中,有这样一所机构,它如同温暖的阳光,穿透自闭症的阴霾,为无数家庭带来了希望与光明。这,就是星启帆——国内规模较大的全寄宿制自闭症儿童康复机构,一个专注于中重度广泛性发育障碍儿童康…

ffmpeg更改视频的帧率

note 视频帧率调整 帧率(fps-frame per second) 例如:原来帧率为30,调整后为1 现象:原来是每秒有30张图像,调整后每秒1张图像,看着图像很慢 实现:在每秒的时间区间里,取一张图像…

MySQL之视图和索引

新建数据库 插入数据 处理表 1. 2. 3. mysql> alter table sc add unique index SC_INDEX (sno asc,cno asc); 4. mysql> create view stu_info as select student.sno,ssex,sc.cno,score from student join sc on student.snosc.sno; 5. mysql> drop index S…

JavaScript——变量与运算符、输入输出、判断、循环

文章目录 前言概述使用 js从文件引入 js 代码importjs 的作用变量计算输入格式化输出保留小数向上取整,向下取整条件判断循环总结 前言 为了监督自己的进度,把学习任务一点点都写出来,写多少就算多少,不求完美,只求完…

Adobe正通过数字体验改变世界

在当今这个数字化飞速发展的时代,Adobe公司正以其创新的技术和卓越的产品引领着创意设计领域的变革。从Adobe发布的生成式AI工具(Adobe Firefly),到Illustrator和Photoshop的新AI功能,再到广受认可的Adobe国际认证&…

架构师第二周作业

目录 1.总结Dockerfile的指令和Docker的网络模式 1.1 Dockerfile指令 1.1.1 FROM :指定基础镜像,必须放在Dockerfile文件第一个非注释行 1.1.2 LABEL : 指定镜像元数据,如:镜像作者等 1.1.3 RUN :执行shell命令 1…

Python编程入门指南:从基础到高级

Python编程入门指南:从基础到高级 一、Python编程语言简介 1. Python是什么? Python是一门广泛使用的计算机程序编程语言,由荷兰人吉多范罗苏姆(Guido van Rossum)于1991年首次发行。Python是一种解释型、交互式、面…

抖音短视频seo矩阵系统源代码搭建---基于PHP语言开发部署

随着短视频市场的爆发式增长,越来越多的企业开始寻求在短视频领域建立自己的品牌形象,增加用户粘性和获取更多流量。为此,一套高效的抖音短视频seo矩阵系统源代码显得尤为重要。本文将介绍基于PHP语言的抖音短视频seo矩阵系统源代码开发&…

数据结构(5):树和二叉树

1 树的定义 1.1 树的基本概念 分支可以称为边,结点可以用于存放数据结构。 除了根节点,其他节点只有一个前驱!!!! 互不相交也就是 只有一个前驱结点! 树应用的很广的 1.2 结点之间的关系 直接…

Infuse Pro for Mac全能视频播放器

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试安装完成!!! 效果 一、下载软件 下载软件…

什么是公司自建企业邮箱?自建企业邮箱有什么用?

什么是公司自建企业邮箱?公司自建企业邮箱有什么用途?一是品牌统一;二是安全性增强;三是定制化功能;四是控制与灵活性等等。哪些企业适合自建企业邮箱呢?本篇文章将为您一一解释。 一、什么是公司自建企业…

《Milvus Cloud向量数据库指南》——SPLADE:基于BERT的Learned稀疏向量技术深度解析

在自然语言处理(NLP)领域,随着深度学习技术的飞速发展,预训练语言模型如BERT(Bidirectional Encoder Representations from Transformers)已成为推动研究与应用进步的重要基石。BERT通过其强大的上下文感知能力,在多项NLP任务中取得了显著成效,尤其是在文本表示和语义理…

Cannot access org.springframework.context.ConfigurableApplicationContext

Cannot access org.springframework.context.ConfigurableApplicationContext SpringApplication.run曝红 解决方案: File -> Invalidate Cache and Restart 如果对你有用就点个赞!