Lor*_*eno 5 powershell azure azure-devops azure-pipelines azure-pipelines-release-pipeline
我正在 Azure DevOps 上构建发布管道。我发布的一部分内容是将一堆文件复制到 Azure VM。据我了解,目标机器需要打开 PowerShell 5986 端口。
我有一个打开端口 5986 的虚拟机(我通过使用“目标机器上的 PowerShell”任务远程调用此虚拟机上的一些命令来验证这一点)。我添加了“Windows 机器文件复制”任务并填写了字段: - 源 - 机器 - 管理员登录 - 密码 - 目标文件夹
在“机器”字段中,我输入了目标机器的 IP。
由于运行该版本,我收到一个错误:
无法创建目标为“\\11.11.11.11\C$\TargetDirectory”的 PSDrive,错误消息:“找不到网络路径”找不到网络路径
我还尝试将 IP 地址与端口放在一起,格式如下:11.11.11.11:5986
然后,我收到了这个错误:
无法将值“\23.97.151.221:5986”转换为类型“System.Uri”。错误:“无效的 URI:无法解析主机名。”
文档 ( https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/windows-machine-file-copy?view=azure-devops ) 说允许带有端口的 IP 地址。
这里有什么问题?
在执行这些操作时,我遇到了完全相同的错误:
最初在我的发布管道中,我有一个代理作业,我在该作业下创建了一个 Windows 机器文件复制任务,并正确填写了所有详细信息。我使用目标服务器(Windows azure VM)的公共 IP 地址设置了 Machines 字段,但我总是收到您报告的此错误。
我尝试改用 Azure 文件复制任务,但我遇到了另一个问题(错误消息:无法获取 ResourceGroup 中所有资源的 FQDN:{resourceGroupName}),经过很多努力我无法解决。
这是对我有用的解决方案:
我没有运行代理作业,而是运行了部署组作业。使用部署组,我不需要 IP 地址即可连接到我的 VM。为 Azure VM 设置部署组非常简单,这里有很好的解释
我在我添加的部署组作业下创建了一个 Windows 机器文件复制任务。我为该任务填写了相同的详细信息,只是我在“机器”字段中输入了计算机名称而不是 Windows VM 的 IP 地址,并且文件复制任务成功运行!
我希望这有帮助
问题是因为您不能使用该任务跨Windows 域边界复制文件!也就是说,如果您在主机 A 上构建并希望将文件复制到主机 B,那么 A 和 B 必须在同一个Windows Domain 中,否则您会得到类似这样的错误
##[error]Failed to Create PSDrive with Destination: '\\your-server-name-or-ip\some\path', ErrorMessage: 'The network path was not found'
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您使用的是托管代理,则您无法将具有该任务的文件复制到您拥有的任何主机,无论它是否具有公共 IP 或 FQDN,因为它们不是在同一个 Windows 域中!
您有两个选择来解决它:
最后但并非最不重要的一点是,该文件应该真正说清楚!在解决问题上浪费了我很多时间!
归档时间: |
|
查看次数: |
5870 次 |
最近记录: |