You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Groovy按服务器选择复制对应配置文件需求及代码修改咨询

修改Jenkins任务实现按选择服务器复制对应配置文件

直接给你修改后的完整代码,核心是在copy_file函数里根据选中的服务器标识匹配对应的配置文件:

parameters {
    extendedChoice(name: 'Servers', description: 'Select servers for deployment', multiSelectDelimiter: ',',
            type: 'PT_CHECKBOX', value: 'Server_lab1-1.1.1.1, Server_lab2-2.2.2.2', visibleItemCount: 5)
}

stage ('Copy nifi.flow.properties file') {
    steps { copy_file() }
}

def copy_file() {
    params.Servers.split(',').each { item ->
        // 去除前后空格,避免参数分割后带空格影响判断
        def trimmedItem = item.trim()
        def server = trimmedItem.split('-').last()
        def targetFile
        
        // 根据服务器标识匹配对应配置文件
        if (trimmedItem.contains('lab1')) {
            targetFile = 'lab1.file.conf'
        } else if (trimmedItem.contains('lab2')) {
            targetFile = 'lab2.file.conf'
        } else {
            // 可选:处理未匹配到的情况,比如抛出错误或跳过
            error("Unrecognized server selection: ${trimmedItem}")
        }
        
        sh "scp ${targetFile} ${ssh_user_name}@${server}:${spath}"
    }
}

关键修改说明:

  • 处理参数空格:用trim()去掉每个服务器项的前后空格,避免因为extendedChoice参数里的逗号分隔带空格导致后续判断或服务器地址提取出错
  • 标识匹配逻辑:通过contains('lab1')/contains('lab2')判断选中的服务器项,确定要复制的目标文件
  • 异常处理:增加了未匹配到服务器标识时的错误抛出,避免执行无效的scp命令

如果后续要新增更多服务器和对应文件,只需要在if-else块里添加新的判断分支即可,扩展性很强。

内容的提问来源于stack exchange,提问作者dzbeda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:37:12