我使用VSTS在线构建和发布过程。我有两台服务器,它们之间有防火墙(不能只在Server1上运行脚本来完成在服务器之间移动文件)。我在两台服务器上都安装了VSTS Agent,并且每台服务器都分配给了VSTS中自己的Pool。我可以释放到任何服务器,没有任何问题。
我无法弄清楚(或者如果它甚至可能)是如何将文件从一个池中的代理复制到VSTS'发布工作目录/临时路径(或者甚至更好地从一个池,直接到另一个代理池)?
例如,我在Pool1中有Server1,在Pool2中有Server2。对于我的发布步骤,我选择了“Run on agent”并选择了Pool1。然后我有一个任务,将文件复制到代理程序,它做了它的事情。我需要做的是将一个zip文件从Pool1服务器可访问的路径下拉到VSTS,并将该zip文件发送到Pool2服务器可用的路径。
是否可以从代理池下载文件?我假设如果我能够在发布临时路径/工作目录中的“运行在pool1步骤”存储该zip文件,我将能够执行Windows文件复制以将其从工作目录发送到“运行”在pool2步骤“。
$(System.DefaultWorkingDirectory)/build/drop
。
计算机:要复制到的其他计算机的IP。
管理员登录:ComputerName\AdminUserName
。
密码:管理员用户名的密码。
目标文件夹:要将文件复制到的其他计算机的路径。不,没有任务将文件从代理下载到其他服务器,如果这些服务器无法连接到彼此上传/下载文件(例如FTP,HTTP),则还需要中间服务器
另一方面,文件不存储在代理池中,它们位于代理中,代理池用于组织代理,不同的服务器/代理可以在同一个代理池中,服务器也可以在多个代理池中。 Agent pools and queues。
听起来你要制作一个非常脆的意大利面条型。这些所需的文件是否可以保存在源代码管理中或作为构建工件?这样您就可以克隆/拉回存储库,或者只使用现在预览中的下载工件任务。