Jenkins 流水线和 jboss 部署
Posted
技术标签:
【中文标题】Jenkins 流水线和 jboss 部署【英文标题】:Jenkins Pipeline and jboss deploy 【发布时间】:2018-11-24 07:19:27 【问题描述】:我目前在我的项目中使用 Jenkins FreeStyle Project
,试图迁移到 Jenkins Pipeline,但我遇到了一些问题:
1)我需要在我的项目中提交jenkinsfile,但是我的部署阶段只是从target/project.war复制到jboss部署文件夹,如下图:
stage('Deploy')
steps
sh 'cp /var/lib/jenkins/workspace/project/project.war /opt/jboss/standalone/deployment/project.war'
问题:目前路径是固定的,明天如果发生变化,需要部署到另一台机器,应该对源代码进行更新,应该避免。在FreeStyle project
中,我只是更新了 JOB,一切正常。
2) 该项目有 3 个模块。 FreeStyle project
已配置为 JOB A 将在完成时调用 JOB B。在管道中如何实现此订单:
- 开始工作 A --> 工作 B --> 工作 C。
【问题讨论】:
【参考方案1】:您可以在脚本中添加以下内容
1.复制问题:
首先,您避免使用实际路径(工作空间中文件的位置)到 相对路径,即使用 project/*.war 或 **/*.war 它将使用它 来自工作区本身。 第二,谈到你遇到的问题 像你说的那样改变目标位置,你必须改变它FreeStyle Project
:) 所以你必须在
JenkinsFile 也:)
2.调用管道中的其他作业和以下
build job: 'Job2', parameters: [
new org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue
("TARGET_NODE", "description", nodeName)
]
如果它没有任何参数,则删除该部分。
有一个叫做 Jenkins 工作流的东西,如果你对它感兴趣,它可以提供更多的权力和控制,你可以在这里查看它https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow?chapter=1
【讨论】:
【参考方案2】:你可以使用 sshPulisher:send build artifacts over ssh
在您的詹金斯管道中添加此代码 并在管理 jenkins 中配置您的 sshServer 终于你的战争转移到你的目的地了
【讨论】:
以上是关于Jenkins 流水线和 jboss 部署的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins流水线(pipeline)实战之:从部署到体验
如何使用 Jenkins 的脚本化流水线(Pipeline)
Jenkins 创建自由风格Maven类型和流水线类型的任务,进行项目拉取编译自动部署