将文件复制到管道詹金斯中的远程窗口服务器

Posted

技术标签:

【中文标题】将文件复制到管道詹金斯中的远程窗口服务器【英文标题】:Copy file to remote window server in pipeline jenkins 【发布时间】:2021-03-07 22:28:56 【问题描述】:

我在 jenkins 中尝试了多种解决方案来复制远程文件,即 AWS 上的 EC2 窗口服务器,

    通过 ssh 发布:提供了密钥、主机名、用户名和密码,但每次都连接失败

    管道脚本:

    管道 代理任何

         stages 
             stage('SCP') 
                 steps 
                     bat '"C:\\Program Files\\Git\\usr\\bin\\scp.exe" -i "C:\\Live" C:\\Windows\\System32\\config\\systemprofile\\AppData\\Local\\Jenkins\\.jenkins\\workspace\\MSDeploy\\abc.txt abc.txt'
                     bat '"c:\\Program Files\\Git\\usr\\bin\\ssh.exe" -i "C:\\Live" tom@xy.xyz.xy.xz ls -ltr'
                 
             
         
     
    

其中 C:\Live 是远程服务器目录,C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\MSDeploy\abc.txt 是本地目录但抛出错误:显示没有找到这样的文件或目录

3。 管道 代理任何 阶段('部署') 脚步 withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'var', credentialsId: 'credid', secretKeyVariable: 'seckey']]) writeFile 文件:'groovy1.txt',文本:'ls' bat 'ls -l groovy1.txt' 蝙蝠'猫 groovy1.txt' 它确实使用文本创建文件,但不起作用。没有一个解决方案对我有用。

请告诉我我错过了什么?另外请告诉我哪个插件最适合连接远程窗口服务器并复制文件?

【问题讨论】:

它被标记为可能不安全使用(并准备采用),但你看过publish over cifs吗?是publish over ssh的表弟 【参考方案1】:

你使用的是windows server,你需要使用一些工具来实现,这里通过ssh复制可能行不通。我通常使用的最好的直接解决方案。

第 1 步:

    创建一个网络驱动器并将其附加到共享文件夹。 可以使用bat命令进行附加
net use N: \\ServerName\Folder /user:Administrator Password

N 是你的驱动器

    现在 jenkins 使用复制命令。

复制“D:\Jenkins\file N:”

您可以在您的 jenkins 文件中使用这些命令,请参阅此链接以获取相同的信息 https://thenucleargeeks.com/2020/11/24/how-to-run-batch-scripts-commands-in-jenkinsfile/ 这将适用于您的情况,如果您遇到任何问题,请告诉我。

【讨论】:

以上是关于将文件复制到管道詹金斯中的远程窗口服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何将远程服务器上的文件复制到自己用的电脑上?

在詹金斯管道中复制工件

复制詹金斯管道项目

怎么把远程服务器上的文件下载到本地电脑上

詹金斯从工件加载文件时出错

如何将文件和文件夹树复制到远程计算机?