VSTS Online - 将文件从AGENT MACHINE复制到VSTS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VSTS Online - 将文件从AGENT MACHINE复制到VSTS相关的知识,希望对你有一定的参考价值。

我使用VSTS在线构建和发布过程。我有两台服务器,它们之间有防火墙(不能只在Server1上运行脚本来完成在服务器之间移动文件)。我在两台服务器上都安装了VSTS Agent,并且每台服务器都分配给了VSTS中自己的Pool。我可以释放到任何服务器,没有任何问题。

我无法弄清楚(或者如果它甚至可能)是如何将文件从一个池中的代理复制到VSTS'发布工作目录/临时路径(或者甚至更好地从一个池,直接到另一个代理池)?

例如,我在Pool1中有Server1,在Pool2中有Server2。对于我的发布步骤,我选择了“Run on agent”并选择了Pool1。然后我有一个任务,将文件复制到代理程序,它做了它的事情。我需要做的是将一个zip文件从Pool1服务器可访问的路径下拉到VSTS,并将该zip文件发送到Pool2服务器可用的路径。

是否可以从代理池下载文件?我假设如果我能够在发布临时路径/工作目录中的“运行在pool1步骤”存储该zip文件,我将能够执行Windows文件复制以将其从工作目录发送到“运行”在pool2步骤“。

答案
  • 如果Windows Machine File Copy任务可以访问其他计算机。您可以使用Windows Machine File Copy task将文件从计算机复制到另一台计算机。任务设置如下: 来源:要复制的文件的路径,例如$(System.DefaultWorkingDirectory)/build/drop。 计算机:要复制到的其他计算机的IP。 管理员登录:ComputerNameAdminUserName。 密码:管理员用户名的密码。 目标文件夹:要将文件复制到的其他计算机的路径。
  • 如果仍然无法根据防火墙设置访问其他计算机,则可以将文件上传到两台计算机都可以访问的位置(例如您自己的网站或github等),然后使用power shell tash下载来自网站的文件。
另一答案

不,没有任务将文件从代理下载到其他服务器,如果这些服务器无法连接到彼此上传/下载文件(例如FTP,HTTP),则还需要中间服务器

另一方面,文件不存储在代理池中,它们位于代理中,代理池用于组织代理,不同的服务器/代理可以在同一个代理池中,服务器也可以在多个代理池中。 Agent pools and queues

另一答案

听起来你要制作一个非常脆的意大利面条型。这些所需的文件是否可以保存在源代码管理中或作为构建工件?这样您就可以克隆/拉回存储库,或者只使用现在预览中的下载工件任务。

以上是关于VSTS Online - 将文件从AGENT MACHINE复制到VSTS的主要内容,如果未能解决你的问题,请参考以下文章

创建VSTS私有代理时遇到问题

Azure DevOps vsts-agent-linux 安装出错, Must not run with sudo

在VSTS上使用多个SSH密钥

将lavvel项目从VSTS发布到Azure到正确的文件夹

从VSTS设置App Identity的文件夹权限?

从在线 VSTS 进程或组变量填充本地 VSTS Linux 代理上的 terraform.tfvars 文件中的变量