繁体   English   中英

AzureFileCopy 任务在 YAML 管道中失败 - 在发布管道中工作

[英]AzureFileCopy task failing in YAML pipeline - works in Release pipeline

我正在尝试将发布管道转换为多阶段 YAML 管道,并且遇到了 AzureFileCopy@4 任务的问题。 当我在发布管道中运行任务时,任务成功并且文件被复制到远程 VM。 当我在多阶段 YAML 管道中运行任务时,任务失败。 具体来说,任务中的以下命令失败:

New-PSSession -ComputerName 'vmname.eastus.cloudapp.azure.com' -Port 5986 -Authentication Default -Name '68fe512f-477d-4d56-9217-5ab84517a53b' -Credential $credential -UseSSL -ErrorAction 'SilentlyContinue' -ErrorVariable sessionErrors -ConfigurationName 'microsoft.powershell'

生成的错误消息是:

Connecting to remote server vmname.eastus.cloudapp.azure.com failed with the following error message : Access is denied.

我不怀疑 WinRM 配置有问题,因为我在发布管道中连接得很好。 鉴于错误和命令,我会说它是凭据,但我一遍又一遍地查看它们,它们完全相同。

NSG 上的入站规则将 WinRM 端口 5986 对任何源开放,因此似乎没有限制哪些机器可以启动新的 pssession。

2020 年 12 月 22 日更新

下面是失败的阶段的净化版本。 文件副本主要在我的构建阶段起作用,但在它是使用部署作业的部署阶段的一部分时不起作用

- stage: deploy
  jobs:
  - deployment: DeployR50
    displayName: Deploy R50 App
    pool:
      vmImage: 'windows-latest'
    environment: 
      name: 'QA'
      resourceName: 'Test'
      resourceType: virtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureFileCopy@4
            inputs:
              SourcePath: '$(Pipeline.Workspace)\R50\*'
              azureSubscription: 'Joe MSDN Azure'
              Destination: 'AzureVMs'
              storage: 'mytest'
              resourceGroup: 'TEST'
              MachineNames: 'Test'
              vmsAdminUserName: '***'
              vmsAdminPassword: $(VM_PASSWORD)
              TargetPath: 'c:\R50'

根据你的描述,你可以在release pipeline中成功运行这个任务,所以VM设置是正确的。

根据我的测试,我尝试将管道导出到 Yaml,它仍然可以正常工作。

您可以尝试以下步骤来检查您的 Yaml 管道:

  • 当您导出 Yaml 文件时,您可以直接将文件上传到 repo,而不是复制代码。

在此处输入图像描述

然后,当您创建 Yaml 管道时,您可以使用现有的 YAML 文件

  • 在output yaml文件中,需要检查是否有多余的空格或特殊字符。

此问题可能是由错误的用户名和密码引起的。

  • 您可以尝试在 yaml 管道中手动重新添加此任务并检查它是否可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM