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流水线部署K8S应用

Jenkins 创建自由风格Maven类型和流水线类型的任务,进行项目拉取编译自动部署

Jenkins 创建自由风格Maven类型和流水线类型的任务,进行项目拉取编译自动部署

Jenkins教程——从安装到部署Docker服务声明式流水线HelloWorld