通过 Azure Devops 用于 MDS 的 CICD

CICD for MDS via Azure Devops

我正在尝试通过 Azure Devops 为 MDS 实施 CICD。 以下是我遵循的步骤:

  1. 创建了一个安装了 SSDT 的自托管代理
  2. 尝试从我作为自托管代理创建的 VM 执行 MDS Cmd 查询,结果成功了:

  1. 在 Azure Devops 中,使用了自托管代理和 CMD 任务:

并添加了内联查询:

cd C:\Program Files\Microsoft SQL Server0\Master Data Services\Configuration

MDSModelDeploy createpackage -service MDS1 -model SalesBI -package "C:\MDS\CICD\SalesBI_CICD.pkg" 

执行管道后,出现错误:

The web configuration file for the Master Data Services instance cannot be loaded. An error occurred loading a configuration file: Access to the path 'C:\Program Files\Microsoft SQL Server0\Master Data Services\WebApplication\web.config' is denied. (C:\Program Files\Microsoft SQL Server0\Master Data Services\WebApplication\web.config)

在 Devops 中设置自托管代理时,我是否遗漏了什么,因为通过手动登录到同一 VM 来执行相同的命令会成功执行。

在Azure DevOps中,如果你想通过自托管代理访问azure devops管道中的本地文件,它通过service account而不是Personal account访问文件,所以你可以运行 从您的计算机本地运行 cmd,并在 azure devops 管道中出现错误。

解决方法

我们可以打开检查文件权限和配置服务帐户权限。服务帐户格式 User/Administrator/Administrators({Agent.ComputerName}\User/Administrator/Administrators)

此外,我们可以将代理服务帐户更改为您的所有者帐户。

步骤:在代理机上打开服务,搜索代理服务账号,如下图,将账号名和密码改成你自己的,就会使用这个账号进行操作。