以下是我的原始帖子。由于我没有回复,因此我想简化所需的帮助:
如何在Linux机器上设置Azure / DevOps发布代理,以便它可以成功检索构建文件并将其放置在正确的位置?我的发布代理无法访问我的Azure DevOps存储库,我不确定为什么。我浏览过Microsoft文档,但在此步骤上仍然挂断电话。它可以在DevOps工具中很好地构建,但是发布代理无法检索文件并将它们放在正确的位置。我认为PAT无法以某种方式正常工作。
有没有人设置过这项功能才能正常工作?
原始帖子:
我将Azure DevOps用作asp.net core 2.1代码的存储库,并且还尝试在成功构建后设置自动部署。我已经在Linux服务器上安装了发行代理,因此它可以从DevOps Azure下载构建-代理无法从Linux CentOS 7服务器的Azure devops git repo下载构件。
这是一个使用Visual Studio 2017开发的ASP.NET Core 2.1应用程序。我们一直在将代码检入存储库中,似乎可以使用托管代理构建良好的代码。我只是想设置部署代理,以便它可以下载到我的服务器并覆盖现有版本。代理已正确安装,并且我确认我的PAT是正确的,并且在部署组内的Azure DevOps中显示为就绪。我尝试多次卸载和重新安装/配置代理,但结果相同。我认为某种安全性问题正在阻止代理访问git repo来抓取文件,但我不知道可能是什么。在代理安装过程中,它为我提供了使用PAT以外的选项的选项,但是我还没有弄清楚如何告诉它使用SSH密钥(只是想尝试一下不同于个人访问令牌的东西,因为我认为这是一种访问权限)问题)。即使不鼓励使用user / pass auth方法,我也尝试过。
这是一个相对较新的CentOS 7 Linux服务器。我已经为具有sudo访问权限的用户设置了代理。也许有很多事情可以给我更多有关正在发生的事情的信息,对此有什么想法吗?
以下是故障发生后代理的日志输出的摘要:
2018-12-20T00:03:30.3804762Z ##[command]git config --get-all http.proxy
2018-12-20T00:03:30.4263711Z ##[command]git -c http.extraheader="AUTHORIZATION: bearer ***" fetch --tags --prune --progress --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/pull/56/merge:refs/remotes/pull/56/merge
2018-12-20T00:03:31.7379139Z fatal: Couldn't find remote ref refs/pull/56/merge
2018-12-20T00:03:31.7784979Z An error occurred during download: Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.ArtifactDownloadException: Unexpected error occurred while downloading artifacts ---> System.InvalidOperationException: Git fetch failed with exit code: 128
at Microsoft.VisualStudio.Services.Agent.Worker.Build.GitSourceProvider.GetSourceAsync(IExecutionContext executionContext, ServiceEndpoint endpoint, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Services.Agent.Worker.Release.Artifacts.TfsGitArtifact.DownloadAsync(IExecutionContext executionContext, ArtifactDefinition artifactDefinition, String downloadFolderPath)
--- End of inner exception stack trace ---