Git 从联机VSTS进程或组变量在本地VSTS Linux代理上的terraform.tfvars文件中填充变量

Git 从联机VSTS进程或组变量在本地VSTS Linux代理上的terraform.tfvars文件中填充变量,git,azure,ubuntu,azure-devops,terraform,Git,Azure,Ubuntu,Azure Devops,Terraform,我确实用Azure、Terraform、Ansible、GIT和VisualStudioTeamService(VSTS)建立了一个基础架构作为代码(IAC)构建管道。我还在本地机器上设置了一个VSTS代理,该代理与VSTS联机同步。该设置目前可以无缝工作,只要我在本地Ubuntu机器上更改Terraform基础设施规范,并将更改提交到GIT存储库,它就会自动更新Azure中的VM定义 问题 如上所示,我有一些应用程序变量,如Azure订阅ID、用户名、密码e.t.c,我不想提交到我的公共存储

我确实用Azure、Terraform、Ansible、GIT和VisualStudioTeamService(VSTS)建立了一个基础架构作为代码(IAC)构建管道。我还在本地机器上设置了一个VSTS代理,该代理与VSTS联机同步。该设置目前可以无缝工作,只要我在本地Ubuntu机器上更改Terraform基础设施规范,并将更改提交到GIT存储库,它就会自动更新Azure中的VM定义

问题

如上所示,我有一些应用程序变量,如Azure订阅ID、用户名、密码e.t.c,我不想提交到我的公共存储库。因此,我将它们定义为VST中的组变量,需要将它们下载/同步到terraform.tfvars文件中的本地Linux代理


请问我如何才能做到这一点

我们使用一系列技术将敏感数据移出脚本。一些例子:

  • 环境变量中的Terraform后端凭据(请参阅以获取列表)
  • 密码、密钥和证书使用
  • terraform.tfvars
    文件中的变量从另一个锁定的存储库中提取;这对于接受多个输入工件的发布管道来说是微不足道的。您还可以使用一个小Powershell动态生成此文件

只需确保管道本身清除了所有这些秘密:VSTS不会为您这样做。

我对Azure不太了解,但它是否没有类似AWS的IAM角色的概念,可以由VSTS等服务承担,并允许使用这些角色,而不必自己提供凭据?